Python's maturity

Tuesday 1 October 2002

It's been clear to me for a while that Python is a full-fledged programming language, and shouldn't be burdened with the term "scripting language" (although it is sometimes called that because of its quick-off-the-blocks feel).

In my mind, there is only one thing still holding Python back: the way people name their projects. With many languages, there's been the same pattern: as people first use the language (whether it is C, C++, Java, or Python), the language itself is one of the central features of the project. The summary of the project will be something like, "JBlob is a blobbety-blob, and it's written in Java". With projects like this, the name of the project will reflect the language used. In the Java world, this meant many project names starting with J, and many coffee-based names (either puns or blends).

As the language becomes more of an accepted engineering technology, and less of a novelty, the language itself fades into the background, and the focus goes back to the software itself. The names of projects lose the language-specific twists.

When C++ was still new, there were many "Foo++" libraries. Now we have Boost and STL.

Looking around the Python world, it looks like we may be coming out of the play-on-the-language-name style of naming software. For example, we have "Zope", which was the reason I found Python in the first place. A quick look at the Python category at SourceForge shows far more generically-named projects than PyProjects.

On the other hand, we still have "PyCrust", but that's a language shell, so it's got to focus on the language anyway; we have "PyGame", but that's a language wrapper for a C-based library. I like "Pyana" (I use it to create this site), but don't know why it is called that.

It's hard to leave behind the appealing "Py" prefix, but I think it is a good sign for the language and its community.


Add a comment:

Ignore this:
not displayed and no spam.
Leave this empty:
not searched.
Name and either email or www are required.
Don't put anything here:
Leave this empty:
URLs auto-link and some tags are allowed: <a><b><i><p><br><pre>.