Last night, I attended a great talk about alternate Pythons (CPython, Jython, PyPy, and so on) at our Boston Python Meetup http://meetup.bostonpython.com/events/25396721/ That got me to thinking what makes a acceptable production implementation programming language.
Throughout my programming career, I’ve learned several computer programming languages. My first learned language was Fortran IV, and first production implementation language, PL/I. Other languages like C and C++ followed, but I never made implementation decisions. I just worked at those places where those decisions had already been made.That all changed in my municipal job. I make the implementation decisions, and they can’t be flaky.
One of the best things about Python is it is a great scripting language; is, like Perl, a “Swiss Army Knife” language with “batteries included”. One of things I don’t like about Python is it is too easy to get in trouble with on-the-fly variable creation and taking advantage of implementation oddities. Python programmers aren’t the first to do this; it was done with every language I’ve ever used including assembly language.
My choice for implementing our water department’s configuration and web applications in Python and Django seems to be paying off. But what about other applications, like batch server jobs? Right now, we have a strong need for web applications.
Two reasons I’m learning Clojure is because it seems — and I say this with no factual backup — that Clojure is being targeted at large multi-threaded, state management applications, along with Erlang and Scala. Oddly enough, I would be more likely right now to write a complicated program in Clojure than Python. It is a judgment call.