E-Scribe : a programmer’s blog

About Me

PBX I'm Paul Bissex. I build web applications using open source software, especially Django. Started my career doing graphic design for newspapers and magazines in the '90s. Then wrote tech commentary and reviews for Wired, Salon, Chicago Tribune, and others you never heard of. Then I built operations software at a photography school. Then I helped big media serve 40 million pages a day. Then I worked on a translation services API doing millions of dollars of business. Now I'm building the core platform of a global startup accelerator. Feel free to email me.

Book

I co-wrote "Python Web Development with Django". It was the first book to cover the long-awaited Django 1.0. Published by Addison-Wesley and still in print!

Colophon

Built using Django, served with gunicorn and nginx. The database is SQLite. Hosted on a FreeBSD VPS at Johncompanies.com. Comment-spam protection by Akismet.

Pile o'Tags

Stuff I Use

bitbucket, Django, Emacs, FreeBSD, Git, jQuery, LaunchBar, Markdown, Mercurial, OS X, Python, Review Board, S3, SQLite, Sublime Text, Ubuntu Linux

Spam Report

At least 236509 pieces of comment spam killed since 2008, mostly via Akismet.

Johnny can too code

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."

Friday, September 15th, 2006
+ + +
6 comments

Comment from Mark , 1 day later

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

10 PRINT "My sister smells!   "
20 GOTO 10

and RUN it 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.

Comment from Rob , 2 days later

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.

Comment from Noel OBoyle , 2 days later

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).

Comment from Paul , 2 days later

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.

Comment from Rob Hunter , 2 days later

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)

Comment from Thomas Armagost , 3 days later

Planet Gnome is a blog for adults, but it paradoxically seems to be designed to hook precocious kids. Brin should visit Planet Gnome.

Comments are closed for this post. But I welcome questions/comments via email or Twitter.