« Cheap pens | Home | My shiny new P4/2.4Ghz computer »

May 9, 2003

Will everyone use Python in 2020?

Paul Graham's essay on Hackers and Painters is making the rounds. It's a good essay, but I think an even better place to start is Tim Bray's own essay called Language Fermentation.

I'd approach Bray's essay bottom-up. Bray first references Graham, and then points to a very good essay by Bruce Eckel called Strong Typing vs. Strong Testing, followed finally by Are Dynamic Languages Going to Replace Static Languages? by Robert C. Martin. Read those three essays first, and then read Bray's take on them.

All four essays cluster around the general question about whether dynamically-typed languages like Python and Ruby (and Lisp, Graham's favorite) will beat out the old statically-typed stalwarts like C++ and Java. (Perl falls on the dynamically-typed side of the fence, but takes its lumps in these essays.) Moreover, Bray and Eckel come down on the side of saying having your compiler do 'testing' - for that's what static typing really is - is inferior to run-type tests that you create along side the code you're writing. This fits in nicely with Graham's musing, who says that programming is better thought of as sketching: working out your solution as you work, rather than thinking it all out in advance. Dynamic languages aid this process by keeping details such as type checking out of the way.