Mark Lutz, one of the most well known names in Python, tells us why he feels Python is now a major programming language. He speaks about the things he likes about Python and the various areas where Python is being used today. He also elaborates on why Python seems like the right answer to some major issues in software development.
According to him, Python’s basic model is a simple core language, and the core doesn’t need much more. He’d like to see effort put into things like optimization and
just-in-time compilers, instead of esoteric language extensions that
may only appeal to the top 5% of the Python user base.
PythonThreads >> Hi Mark, could you please introduce yourself?
Mark Lutz >>
Sure, I’m Mark Lutz, Python trainer and author of multiple O’Reilly
Python books. I’ve been involved with Python since 1992, and started
teaching Python classes in 1997. I have taught 150 classes and
thousands of new Python programmers over the years.
I’m also the author
of Python’s earliest and best-selling texts to date, including
Programming Python, Learning Python (I’m the main co-author), and
Python Pocket Reference. All my Python books are in 2nd or 3rd
Editions. I’m also a software engineer with two decades of experience,
and BS and MS degrees in computer science.
PythonThreads >> You have been using and promoting Python for over a decade, what made you stay with Python for so long and what according to you makes Python special as compared to other languages?
Mark Lutz >> Python makes programming fun. When I found it on the net back in 1992, I was a frustrated C++ programmer. Python was so much better that I’d never go back to a language as tedious as C++.
Python seemed, and still seems, like the right answer to some major issues in software development: it focuses on quality, coherence, and so on, in ways that other tools do not. These days I get paid to teach Python, not program in it, but I still find myself hacking Python in my free time purely for the aesthetic pleasure of it.
“Python was so much better that I’d never go back to a language as tedious as C++…”
PythonThreads >> Powerful tools have driven the growth of many programming languages. Do you think Python tools are up to the mark? How would you compare the various Python tools and IDEs available today?
Mark Lutz >> I’m not sure that IDEs are as crucial to Python programmers as that question may imply. What I see is that people gravitate to what they are used to–IDEs for some, just a shell command line and text editor for others. Having said that, the IDLE IDE did wonders to help beginners in my experience; it’s a friendly environment to get started in. It also tends to break down for more advanced programming, though — I don’t use it for GUIs or multithreading, for instance.
I’ve seen people using Eclipse for Python recently (and giving mixed reviews), as well as Komodo and Wing. PythonWin is nice too, but it tends to hang frequently. You’ll find GUI builders for Python too, but you shouldn’t confuse Python with a Visual Basic type of tool; Python is a programming language for programmers — not something for building GUIs without much if any code.
“You shouldn’t confuse Python with a Visual Basic type of tool…”
PythonThreads >> Developers can now use Python language for mobile application development, Do you see Python becoming a popular language of mobile development and maybe replace Java in mobile application development some day?
Mark Lutz >> Sure, but I don’t try to predict the future; I’m amazed at how far Python has already come, and many of it’s leading applications are things we couldn’t have predicted when Python was first starting out (when I found Python, there was no website, just a set of uuencoded email messages).Much of Python’s future will probably be just as unforeseen.
“I’m amazed at how far Python has already come…”
PythonThreads >> Which of the current python developments do you find most exciting?
Mark Lutz >> I think the port to the Nokia cellphone line is quite cool. I also find Python’s use in high-profile systems such as Google, ILM, the BitTorrent P2P system, and the ESRI GIS product to be interesting. The latter of those has a one million customer base, for instance. Statistics such as book sales and training demand are also upbeat.
“I find Python’s use in high-profile systems such as Google, ILM ….”
PythonThreads >> Guido van Rossum has emphasized on the use of Interfaces in python. Do you see a need for interfaces?
Mark Lutz >> We already have them. I see interfaces as an informal thing underlying most of Python programming, not requiring special syntax. Every object already provides an interface — a set of method calls and expression operators — which defines it. In Python, we code to these interfaces, not to specific datatypes: a function assumes its subject objects do the right thing for the expected interface, but doesn’t care what the objects are, or for that matter, how they respond to the operations run against them.
By not constraining code to a specific type, it applies to a whole range of types automatically. This idea is one of the keys to understanding the language, and underlies much of its conciseness and flexibility (what some would call agility). But like I said, to me it seems like this a fixture of the language which has been there from day 1, not a new thing, and not something that requires complicating the language with new syntax.
“I see interfaces as an informal thing underlying most of Python programming….”
PythonThreads >> Which features would you like to see in future python versions?
Mark Lutz >> I don’t think the core language itself needs much more at this point. Down that path lies Java, C++, and Perl6. I’d rather see work on libraries and tools. I’d also like to see effort put into things like optimization and just-in-time compilers, instead of esoteric language extensions that may only appeal to the top 5% of the Python user base.
Python’s basic model is a simple core language, with application tools split off to application libraries. That makes for a very modular system, which is easily extended, and easily learned. The problem with adding things to the core language instead of its standard libraries is that it raises the complexity bar for everyone — both the advanced users asking for language changes, as well as people looking to use a simple language for things like product customization. Unfortunately, once anyone in an organization uses an advanced language feature, it is no longer optional for everyone else.
“I’d also like to see effort put into things like optimization and just-in-time compilers.…”
PythonThreads >> An important reason for Java being so popular is that it had IT giants like Sun, IBM and ORACLE promoting it. Although Google and Yahoo do say that they use a lot of python, nobody seems to be promoting Python ?
Mark Lutz >> Sorry, but I don’t buy the premise of this question. Python is very widely used these days, and if you haven’t noticed, it’s just because you haven’t been looking in the right places. I see Python being used in virtually every substantial software enterprise — whether as a tactical tool for quick scripts, or as a strategic tool for longer-term projects.
Granted, it took Python longer to catch on than Java (which benefited from lots of marketing money). But it definitely hit a critical mass a few years ago, and seems to be doubling in use yearly now. People using Python are promoting Python; it spreads of its own accord. The impact of Google may also be more significant than you seem to imply.
PythonThreads >> How would you say has python evolved over the years?
Mark Lutz >> It’s made the lives of Python programmers easier. I have large Python programs I wrote in 1992 (including an expert system shell) that still work today unchanged with the latest Python release. That’s a pretty amazing backward compatibility metric. However, if I were to update those programs today, I’d rewrite them substantially to take advantage of the tools Python has grown since then — builtins that automate what I had done manually, or boost performance.
“Python has amazing backward compatibility…. “
PythonThreads >> Python has been around for a very long long time but it never managed to become a major programming language. What do you think were the reasons and do you see things changing?
Mark Lutz >>Again, not so: Python is a major programming language today. I see it being used as much as things like Java, C++, and Perl these days. Acceptance took time, but this field is slower to make improvements in tools than most people may think.
PythonThreads >> . How do you see Python progress in the next few years? Is it likely that it will become as mainstream as say Java or .NET?
Mark Lutz >> Sigh; this seems to be a recurring theme :-). One more time: Python already is mainstream in the industry at large. Not to be rude, but I could list a few hundred major companies and organizations to ask if you don’t want to take my word for it. I think the user base will keep growing from year to year; like I said, it passed the critical mass point a few years ago. .NET has become mainstream? Maybe in your world, but not for most of us.
“.NET has become mainstream? Maybe in your world, but not for most of us…..”
PythonThreads >>Thanks Mark. It’s been good talking to you. Could you share your blog url or email address with our readers?
Mark Lutz >> I have a web page at http://www.rmi.net/~lutz . My email is (lutz at rmi dot net), but I’m not always as responsive there as I’d like; I’m too busy these days teaching this obscure language called Python on a weekly basis :-).