Code Swarm: A Visual History of Python Commits

by Joey deVilla on August 7, 2008

The Code_Swarm video is an interesting visualization of the evolution of the work done on the Python programming language and the people involved, tracing its evolution from late 1990 to mid-2005.

code_swarm – Python from Michael Ogawa on Vimeo.

The intro for the video says:

In 1991, Guido van Rossum released his Python scripting language to the public.

This video will take you through the history of the project, compressed into a fraction of the time.

You will see the names of developers fade in and out of prominence, while the files they work on swirl around them.

Red files are core code. Blue files are documents. Yellow files are modules. The histogram on the bottom tracks the size and time of commits. When a person makes a commit, their name stands out. The files they commit also stand out. Files grow in size every time they are committed. Files and people gradually fade when there is no activity.

[Thanks to The War on Folly.]


50 Python Modules for all Needs

by Joey deVilla on June 16, 2008

50 Modules for all Needs is an entry at that lists 50 Python modules, at least some of which should prove useful to you.


With Advocates Like Zed…

by Joey deVilla on March 3, 2008

I can’t help but wonder if, what with Zed Shaw’s talk of switching to Python and Django, if Guido and Adrian view him the way Barack Obama is portrayed as viewing Jesse Jackson and Al Sharpton in The Obama Files


Python and Java: A Side-by-Side Comparison

by Joey deVilla on January 15, 2008

This side-by-side comparison of Java and Python shows why I prefer working in languages like Python and Ruby: the “yak shaving” that Java requires drives me crazy.


Tim “Ongoing” Bray’s Take

Tim Bray posted a blog entry on what drives adoption of a language in which he included some tables such as the only below:

Procedural FORTRAN, COBOL, PL/1 C
Object-Oriented C++ Java
Higher-Level Perl, TCL Python, Ruby

This table of his should inspire a monkey knife fight on a number of blogs:

Web-Centric WebObjects, ColdFusion, ASP.Net, Struts, etc.,
etc., etc., PHP

Here’s an interesting one. What will JavaScript’s successor be? My guess for the short-term (by that, I mean “the next half-dozen or so years”) is “the next version of JavaScript”.

Mobile-Code JavaScript ?

The one about concurrent programming is a little more up in the air. Although there are other languages designed with concurrent programming in mind (either from the ground up or with concurrency retrofitted onto an existing language) and there have been for a while (I used Concurrent C in a course back at Crazy Go Nuts University in the early ’90s), Erlang is getting a lot of the attention these days since it has both a success story at Ericsson under its belt as well the clout of a Pragmatic Programmers book behind it. There is a feeling among some programmers (Bray included) that it isn’t going to be the language to turn concurrent programming from arcane art into mainstream practice:

Concurrent Erlang ?

Shelley “BurningBird” Powers’ Take

Shelley Powers disagreed with Tim’s assessments in her posts Flaws are in the Eye of the Beholder:

I find it fascinating when a person marks as ‘flawed’ the languages that have, literally, defined not only the web but application development of all forms. Perhaps the metric shouldn’t be on syntax, form, or function, but on usability.

Here’s her own table on languages:

'Perfect', but barely used 'Flawed', but simple, approachable, powerful, popular
Higher-Level *Ruby (every time I see 'Ruby' I mentally add, Mama's precious little…)

*I’m giving Python a slide because Python has fairly widespread use today.

Client side code (The to-be-created scripting language that will take a nice, clean, easy to use language and morph it until it satisfies the purists, while breaking faith with the millions of users just trying to do a job) JavaScript
Object Oriented Java (bloated beyond recognition with senseless additions and overly complex infrastructures) C++ (which can kick Java's ass performance and resource wise)
Web-Centric Rails (you know that thing they used for the one application?) Cold Fusion, ASP and ASP.NET, PHP

Those of you who recall Bjarne “C++” Stroustrup’s line “There are just two kinds of languages: the ones everybody complains about and the ones nobody uses” or the essay Worse is Better (or the essay that led to it or Jamie Zawinski’s commentary on it) should be feeling deja vu now.

As for Shelley’s table, I’d probably have put “PHP” where “Perl” is right now.

My Own Take

I think that right now, the “scripting languages” are stuck in something akin to “Three Stooges Syndrome”. That’s the disease where Mr. Burns from The Simpsons, being so old and frail, has so many diseases trying to get at him at the same time that they’re all “stuck in the door”. The doctors illustrated the syndrome with a model, shown below:

“Three stooges syndrome” from “The Simpsons”: All the germs and viruses are stuck in the door because they tried to get in all at once.

And since Tim and Shelley have their tables, I thought I’d make one too:

Scripting Stooge What’s Driving It
Perl Legacy: it was the original “duct tape of the internet”.
PHP Widespread adoption, drives a lot of apps, easy to program, easy to deploy.
Python Very readable, one of the 4 languages approved for use at Google (the others being C++, Java and JavaScript, according to Steve Yegge).
Ruby Ruby on Rails, which is a very nice framework from the web app developer’s point of view. That and maybe the fact that DHH is rather photogenic (although PHPer-turned-Pythoner Leah Culver could give him some competition).

Cross-posted to the Tucows Developer Blog.


Python 3000 Alpha 1 Available Now!

by Joey deVilla on August 31, 2007

Guido van Rossum’s head on Andre 3000’s body
If there’s an Andre 3000 and a Python 3000,
why not a Guido 3000?

It’s been a long-time topic of discussion in the Python camp: Python 3.0, also known colloquially in the Python community as “Python 3000” or “Py3k”, and today it got a little more real. The first alpha release of Python 3000 is now available for download, just in time for those of you who want to test-pilot it over the Labor day weekend.

(If you’re waiting to get a final version before downloading, you’ve got a fair bit of time. The current best estimate for the release date of that version is August 2008.)

Unlike Perl 6, which is a radical reworking of the language, where every feature is subject to change, the idea behind Python 3000 was correct a specific set of design mistakes. These corrections are large enough that they will break programs written in existing versions of Python, but which provide gains that are enough to make the trade-offs worthwhile.

If you’re curious about Python 3000, here are some links you might want to check out:

Cross-posted to the Tucows Developer Blog.