Python is an Agile programming language
by Uche Ogbuji
Related link: http://www.pycs.net/altis/2003/04/04.html
Many Python boosters have looked for a good word to place Python among programming languages. We believe it has all the best qualities of "scripting" languages and "application" languages, such that neither term really does it justice. Kevin Altis and Ward Cunningham came up with "agile", and this seems to appeal to some at first blush. I'm not so sure yet, but it's an interesting idea. See full text for more.
When Kevin posted this idea on the Python-n-business forum, and someone asked him exactly what he was on about ("I have a qualitative sense of what you're getting at. Can you define just what you mean by 'agile' though?"), Kevin expanded thusly:
It's like art, you know it when you see it. ;-)
But seriously, For over a month I was just looking for a better way of
describing Python that sounds right and positive and the best I could come
up with were terms like nimble, which happen to be part of the definition of
Characterized by quickness, lightness, and ease of movement; nimble
Ward made the leap to saying agile. He also stated:
"Well, there are agile languages and agile methods. When you put the two
together you get agile squared."
So, at this point I don't have a set of [tenets] of an agile programming
language, but Ward and I were planning to put together a list of the things
that make a language like Python so special. I've got a rough list that I
started on the plane trip back from PyCon, but it needs to be fleshed out a
bit more and then refined so the message is tight. You'll notice some of
this comes from the success stories intro, Dana Moore's slides, Stephan's
Python pages... Ward and I will probably drink beer and revise some more
Monday night after the Portland Python user group meeting.
- excellent for beginners, yet superb for experts
- highly scalable, suitable for large projects as well as small ones
- rapid development
- portable, cross-platform
- easily extensible
- you can get the job done
- simple yet elegant
- stable and mature
- powerful standard libs
- wealth of 3rd party packages
And I don't know where this should go, but I want to get the message out
that "Programming is fun again!"
Interesting, but ...
What's the ultimate purpose of coining a pithy phrase for a language? Marketing? Product placement. Not to troll, but the list of features for Python looks very much like those for Perl, or, even better, Ruby. So, can we call Ruby an agile language? Of course we can (and many of us do).
Interesting, but ...
I think your thoughts are spot on. I did mention that I was uncertain about this "agile language" thing, and as you suggest, would much rather educate people away from the bias against what some term "scripting languages".
I generally like this, though there are some unimportant things that I feel I must comment on. :)
Describing Python as an "Agile" language, rather than scripting/glue language, indeed seems very catchy! It is frustrating to always have to explain why Python, being a "scripting language", is suitable for large scale work. "Scripting language" is a derogatory moniker, in a way, while "Agile" sounds just spot on. It has no negative connotations. Good work!