My name is Paul Bissex, and e-scribe.com is my consulting business. I build web applications using as much open source software as possible. From September to June I teach web design and other important non-photographic professional skills to photographers. In the '90s I wrote technology commentary and reviews for magazines, newspapers, and web publications, including Wired, Salon.com, FamilyPC, the late lamented Web Review, and the Chicago Tribune. Feel free to email me.
I'm co-authoring a book, "Python Web Development with Django", with Jeff Forcier and Wesley Chun. It will be published by Prentice Hall in July 2008, but is available for pre-ordering on Amazon now.
This site is built on a fresh trunk checkout of Django, running on Python 2.5.1, served by Apache and mod_python. The database is SQLite. The operating system is FreeBSD, on a VPS hosted at Johncompanies.com. Comment-spam protection by Akismet. Vintage topo imagery from the Maptech archive.
Akismet, del.icio.us, Django, dpaste.com, Emacs, FreeBSD, Freenode, jQuery, LaunchBar, MacPorts, Markdown, Mercurial, OS X, Postfix, Python, SQLite, Subversion, TextMate, Trac, Ubuntu Linux, wmii
Copyright 2008
by Paul Bissex
and E-Scribe New Media
David Brin, in a piece at Salon.com entitled "Why Johnny Can't Code", complains:
almost none of the millions of personal computers in America offers a line-programming language simple enough for kids to pick up fast
Maybe Apple's marketshare is so small that they equal "almost none," but all OS X Macs come with Python and Ruby among other options. But wait, Brin seems to have heard of some of these newfangled scripting languages:
The "scripting" languages that serve as entry-level tools for today's aspiring programmers -- like Perl and Python -- don't make this experience accessible to students in the same way.
Really? In what way do they make it available? In what way do they fall short? Brin doesn't say.
I'd argue that Python (to speak about that with which I'm most familiar) is a better language than BASIC for learning coding, and not because it's more pure in a CS sense. It's clean, consistent, powerful, easy to read, nearly devoid of distracting cruft -- and it has an interpreter.
Brin's argument seems to be that because young people aren't learning BASIC anymore... cool stuff will stop happening and all young people will become mindless consuming automatons. I'd ask him to interview a dozen 22-year-old Web 2.0 hackers and innovators and find out how many of them cut their teeth on BASIC. Few to none, I'd wager (really, I'll wager, like, five Paypal dollars on it).
I grew up on BASIC and in some ways I'm still recovering!
Anything more I could say about this is better expressed by Rafe's condensed version, from a discussion today on the Well:
"I wanted to teach my kid to program without having to learn anything myself, and I couldn't."
On the old computers, you were always at the terminal because you couldn't do anything else. I had pretty much the same experience with my old Commodore. I don't see that as a better time and place in computing.
Today, if you open up a terminal on Linux (or bothered to install Python and set it in the run path environment variables on Windows), you can simply type:
python -c "print 'My sister smells.'"
...and you get the same effect, except more succinct.
If you actually RUN the python interpreter, you get the same effect as the good 'ol days. Type commands at the prompt to your hearts content. I frankly don't understand what the Salon.com author is griping about. Today there are hundreds more languages you can freely download and experiment with. Back in the day, you had BASIC and were lucky if you could get your hands on a C or Pascal compiler without shelling out some bucks.
It seems to me that one of David Brin`s main points is that it was easier to draw graphics using BASIC. This is certainly true, at least on the surface. There is no vector graphics library as standard with Python, whereas even QBasic allowed you to easily draw pictures. Part of the fun of programming was drawing Pascals triangle or the Mandelbrot fractal with only a few lines of code, or writing a Pong game as David suggests. The bar appears to be higher with popular scripting languages (although I am only familiar with Python).
That's one of the best defenses of Brin's rant that I've heard. Except for Logo, none of the alternatives that come to mind are very beginner-friendly when it comes to graphics, mostly due to the increasing complexity of GUIs I suppose.
Actually, drawing isn't too bad with stuff like pygame.
Even better for those new to programming, RUR-PLE provides something a bit like a LOGO environment, but using Python. (There's a screencast video of RUR-PLE in action which probably sums it up pretty well)
Planet Gnome is a blog for adults, but it paradoxically seems to be designed to hook precocious kids. Brin should visit Planet Gnome.
Comments use Markdown syntax. Your comment will not appear until approved, which may take a few hours or more. Spammers will be torpedoed.
The iPhone keyboard doesn't suck
Python one-liner of the day
7 comments
How not to advocate via Google Code
2 comments
99 problems
3 comments
bitmonk
Obscure "svn mv" problem solved
98 days ago
Charlie
Book news: Rough Cuts and Amazon
99 days ago
Simon Griffee
Django Mercurial mirror tweaks
116 days ago
Jason Calleiro
From PHP to Python
117 days ago
Yuli
dpaste.com
120 days ago
bruce
Neat Python hack: infix operators
124 days ago
David Reynolds
The original Lego Star Wars
132 days ago
At least 38478 pieces of comment spam killed since January 12th. Thanks are mostly due to Akismet.
I think the difference is that the early machines - Spectrums, BBCs, C64s etc - came with a BASIC interpreter as their front end.
On the Spectrum, you could type
and
RUNit immediately. None of the current scripting languages have quite that level of integration with the machine.Besides, there are more distractions on a modern PC: the Spectrum would only do one thing at a time. If you didn't load a program off tape, writing BASIC is all that you could do.
In the mid-eighties, virtually all of my 13-year-old peers who owned a microcomputer also had at least a rudimentary grasp of BASIC and what programming was.