By Rick Muller June 7, 2000
I love Python. Of the 10-15 programming languages I know, Python is the only language which I actually look forward to using. I wake up in the morning, ask myself, "Will I be using Python today?" and if the answer is "yes" I know that it's going to be a good day.
And yet, I worry that using Python can actually marginalize a programmer. Python is hard to beat for writing applications that run on a single computer. But that's yesterday's computing model. The future of computing, heck, the present of computing, is in writing programs that run through a web browser. And the fact of the matter is that 99% of web browsers surfing the internet run Java and JavaScript, which gives these languages a huge advantage over Python, an advantage that Python's superior design may not be able to overcome. I have Ada-programming friends who mumble about Ada's superiority over C++; that may be the case, but does it really matter anymore?
I'm aware of CGI scripting with Python. It's great. But JavaScript pages load faster than CGI pages, and are easier to program, to boot. Plus, JavaScript can directly call Java Applet methods, enabling it to do functions that are simply impossible with CGI scripts.
I'm also aware of the JPython module, which promises to enable us to write applets in Python instead of Java. But who among us has actually *used* JPython? Or, for that matter, who has come across a random web page on the net that uses JPython applets?
Do I recommend that students today learn Python? Certainly, because it's easy, fun, it teaches one good OO habits, and it's incredibly powerful. But I also recommend that students learn C/C++ for speed (I no longer recommend Fortran), and Java and/or JavaScript for web programming. Heck, I also recommend that they learn Perl, since so many other people know Perl. That leaves a significant niche for Python, but only a niche, and Python is too good a language to be a mere niche player.
If we don't want to see Python wind up like Ada, what should we do? I've been teaching a 6-lecture short-course on Python here at Caltech, in an effort to introduce more people to the language. I'm thinking about learning enough JPython to give an additional lecture on that language. Hopefully, if enough people use JPython for writing Applets we can help establish it as a reasonable alternative to Java. As for JavaScript, I don't know of a solution. It would have been nice if Netscape had implemented Python's syntax for LiveConnect rather than Java, but it didn't happen that way. Think how wonderful it would have been to write PythonScript functions in web pages rather than JavaScript.
What else should we be doing to make Python *the* programming language rather than *a* programming language?
Rick Muller is a quantum chemist at the Materials and Process Simulation Center at Caltech. He is seeking the Holy Grail of computational chemistry tools that are powerful and easy to use, and Python is a natural choice.
|