Why Johnny Can’t Code

“For three years [my] son Ben, and I have engaged in a quixotic but determined quest: We’ve searched for a simple and straightforward way to get the introductory programming language BASIC to run on either my Mac or my PC. Why on Earth would we want to do that, in an era of glossy animation-rendering engines, game-design ogres and sophisticated avatar worlds? Because if you want to give young students a grounding in how computers actually work, there’s still nothing better than a little experience at line-by-line programming.” Looking beyond the immediate fear-inducing acronym BASIC, this article delves deeply into what it means to simply be in control–via a basic understanding of under the hood–of your own computer, and how our whiz-bang world of technology today is failing to bestow this understanding on this generation of would-be hackers.

How did you become a programmer? Was it not through experiences of ’60s, ’70s or 80’s computing? BASIC is at the heart of what makes me a programmer. The article correctly argues that the fact that BASIC is a bad programming language is besides the point–it got things done in few enough lines to incite the imagination and sense of awe in my young self. I could move dots around the screen and I could create in a messy ‘finger-paints’ hands-on way that rewarded exploration and play. Children do not start with C and progress to C++ no more than I professional code in Q-BASIC.

How many lines of Java code, and more importantly how much background knowledge, would you need to know to synthesize a basic musical tune? In certain BASICS, nothing more than a line or two. I am unaware of any simple way to get a computer to do anything anymore. Everything requires background knowledge, and over complicated tools built for solving big, business-y type problems and not for letting users simply play and create with their computers. Computing today is awesome (and I mean that dictionarily) for consuming content, but absolutely crappy for creative children who want to create—or more precisely, want to learn how to create.

Yes, I’m sure you can give me great examples, but they are not the norm, nor the default, nor the expected. When I switched on my C64, it stated “Ready.” and it was ready to go do whatever I commanded it. By default, I could create, or consume. When you have to pay $99 a year to create for your own iPhone, there is no point you can put to me against this stymieing innovation. If my Commodore 64 required £99 a year to program on, I wouldn’t be a programmer, period. I was 7 for goodness sake, and only stopped using it when I was 16 when I still wouldn’t have been able to afford it.

When my teachers showed me parabolas for the first time, I drew them on my C64 when I got home. Something that was not possible to do for a 12 year old on any of the PCs in the school. They didn’t have the software, you couldn’t download and install it, and there was no way to otherwise command the PC in a basic way to do something as simple as answer a child’s curiosity. I played with the parameters and then started mapping 3D parabolas, all on my own. Nobody taught me how to do this. I was entirely self-taught on the C64, in my own time, and I was drawing 3D parabolas using BASIC. A 1983 Commodore 64 was more capable in that aspect than computers three hundred times the speed and capability.

The article finds the same conclusion: nothing on the PC actually worked—

Chipmunk Basic for the Macintosh actually started right up and let us have a little clean, algorithmic fun. Extremely limited, but helpful. All of the others, every last one of them, was either too high-level (missing the whole point!) or else far, far too onerous to figure out or use. [,]

Until, at last, Ben himself came up with a solution. An elegant solution of startling simplicity. Essentially: If you can’t beat ’em, join ’em. [,]

While trawling through eBay, one day, he came across listings for archaic 1980s-era computers like the Apple II. [,] “Well, look, Dad. Have you seen what it costs to buy one of those old Apples online, in its original box? Hey, what could we do with it?”

However, one of the reasons I wanted to take up this article was because whilst the author laments the lack of movement from Microsoft in providing an answer for kids,

All right, here’s a challenge. Get past all the rationalizations. (Because that is what they are.) It would be trivial for Microsoft to provide a version of BASIC that kids could use, whenever they wanted, to type in all those textbook examples. Maybe with some cool tutorial suites to guide them along, plus samples of higher-order tools. It would take up a scintilla of disk space and maybe even encourage many of them to move on up. To (for example) Visual Basic!

,Microsoft have in fact done this very thing! Microsoft Small Basic is a simple language and development centre to teach BASIC programming skills. The language has just 14 keywords and it is based around .NET.

(I’ll leave criticism of Small Basic to the actual users, but I have to question the use of the floppy disk icon for save. Do kids even know what a floppy disk is?)

As you can no doubt guess, this all matters a lot to me. Free, unfettered and unpatronising access to my own hardware made me what I am today. Where will the next generation of Linux kernel hackers come from if there are not kids without an interest in what goes on under the hood? Where is any innovation going to come from when we all retire, and the only way to create is to go through an approved channel of education into the right job that pays for your tools and for your training so that you may be blessed to look under the hood? Okay, so I’m being a bit dramatic, but I’m genuinely worried with what Apple is doing, and where computers are going, given that the industry’s future in 30 years time is being progressively constricted by companies that want to keep their comfortable positions now that they’ve gotten there on the backs of the exact opposite behaviour—free and unfettered access for our generation to explore and create and to become the makers of this world.

But ah, we still have the ’Web! What was so special about my Commodore 64 was that when I turned it on, the only thing the best programmer in the best company had over me was education and experience. He couldn’t have a better Commodore 64 than me. I could take that company on head to head if I had the right idea and the will power—and many did, considering how many large game companies we have now sprung up out of bedroom coders.

The ’Web allows anybody with a computer, Internet connection and a text editor to take on the biggest companies at their own game. The best web developers in the best companies have better educations and better pay-cheques than me and yet I can innovate more than them from the comfort of my bedroom.

Here’s to BASIC! And here’s to the next generation of programmers, whatever language you code in!

119 Comments

  1. 2010-06-21 8:00 pm
    • 2010-06-22 10:47 am
      • 2010-06-22 11:18 am
      • 2010-06-22 11:32 am
        • 2010-06-22 12:20 pm
          • 2010-06-22 4:04 pm
          • 2010-06-22 7:28 pm
          • 2010-06-23 8:11 am
          • 2010-06-23 3:31 pm
      • 2010-06-22 5:19 pm
      • 2010-06-22 8:17 pm
        • 2010-06-23 8:12 am
          • 2010-06-23 10:24 am
          • 2010-06-24 8:47 am
      • 2010-06-23 5:49 pm
  2. 2010-06-21 8:05 pm
  3. 2010-06-21 8:12 pm
    • 2010-06-21 8:22 pm
      • 2010-06-21 8:47 pm
      • 2010-06-21 9:47 pm
        • 2010-06-21 9:52 pm
          • 2010-06-21 9:58 pm
          • 2010-06-21 10:18 pm
        • 2010-06-22 3:54 pm
    • 2010-06-21 9:54 pm
      • 2010-06-22 10:23 am
    • 2010-06-22 12:07 pm
      • 2010-06-22 12:45 pm
        • 2010-06-22 3:24 pm
  4. 2010-06-21 8:14 pm
    • 2010-06-21 8:45 pm
    • 2010-06-22 8:30 am
  5. 2010-06-21 8:16 pm
    • 2010-06-21 8:40 pm
      • 2010-06-21 9:25 pm
        • 2010-06-22 12:14 am
      • 2010-06-22 1:39 am
        • 2010-06-22 4:17 am
        • 2010-06-22 8:49 am
          • 2010-06-22 9:23 am
      • 2010-06-22 10:35 am
      • 2010-06-22 4:24 pm
  6. 2010-06-21 8:18 pm
  7. 2010-06-21 8:37 pm
    • 2010-06-21 9:58 pm
      • 2010-06-21 10:55 pm
      • 2010-06-22 9:54 am
  8. 2010-06-21 8:47 pm
  9. 2010-06-21 9:05 pm
    • 2010-06-21 9:51 pm
    • 2010-06-22 1:04 am
      • 2010-06-22 2:11 am
  10. 2010-06-21 9:25 pm
  11. 2010-06-21 9:36 pm
    • 2010-06-22 8:59 am
  12. 2010-06-21 9:37 pm
  13. 2010-06-21 9:44 pm
  14. 2010-06-21 9:45 pm
  15. 2010-06-21 9:47 pm
    • 2010-06-21 10:42 pm
  16. 2010-06-21 10:56 pm
    • 2010-06-22 1:33 am
  17. 2010-06-21 10:59 pm
  18. 2010-06-21 11:28 pm
    • 2010-06-21 11:47 pm
  19. 2010-06-21 11:39 pm
    • 2010-06-22 1:05 am
  20. 2010-06-22 1:12 am
    • 2010-06-22 1:50 pm
  21. 2010-06-22 1:38 am
    • 2010-06-22 2:09 am
    • 2010-06-22 2:34 am
    • 2010-06-22 3:27 am
      • 2010-06-22 7:47 pm
      • 2010-06-23 1:12 am
  22. 2010-06-22 3:18 am
  23. 2010-06-22 3:24 am
  24. 2010-06-22 4:28 am
  25. 2010-06-22 4:58 am
  26. 2010-06-22 5:26 am
  27. 2010-06-22 6:07 am
  28. 2010-06-22 6:33 am
  29. 2010-06-22 7:17 am
  30. 2010-06-22 7:24 am
    • 2010-06-22 12:23 pm
  31. 2010-06-22 8:06 am
  32. 2010-06-22 8:34 am
  33. 2010-06-22 8:57 am
  34. 2010-06-22 9:04 am
    • 2010-06-22 2:10 pm
      • 2010-06-22 4:17 pm
        • 2010-06-23 7:21 am
          • 2010-06-23 8:01 am
          • 2010-06-23 8:08 am
          • 2010-06-23 1:08 pm
          • 2010-06-23 2:20 pm
          • 2010-06-23 3:22 pm
  35. 2010-06-22 11:30 am
    • 2010-06-22 2:20 pm
      • 2010-06-23 9:13 pm
        • 2010-06-23 9:36 pm
  36. 2010-06-22 12:48 pm
    • 2010-06-22 1:46 pm
      • 2010-06-22 3:29 pm
        • 2010-06-23 3:52 pm
          • 2010-06-23 6:20 pm
  37. 2010-06-22 3:35 pm
  38. 2010-06-22 8:26 pm
  39. 2010-06-23 4:20 am
  40. 2010-06-23 6:52 am
  41. 2010-06-23 7:03 am
  42. 2010-06-23 10:16 am
  43. 2010-06-23 3:47 pm
  44. 2010-06-23 4:46 pm
  45. 2010-06-23 6:04 pm
  46. 2010-06-24 11:28 am
  47. 2010-06-25 12:00 am
  48. 2010-06-25 4:25 pm