Letters to the Editor

Letters posted here are associated with the following article:
Why Johnny can't code BASIC used to be on every computer a child touched -- but today there's no easy way for kids to get hooked on programming.
The letters thread is now closed.
  • A valid concern

    I am probably of the last generation that actually started with a machine that you could easily program close to the hardware. When I was growing up, a C64 was already a bit long in the tooth, and Amiga 500 was all the rage. Even the A500 was already much more complex than its predecessors, and after that, it's just got more difficult to actually get a grasp of what programming, at its core, is all about.

    The biggest problem these days is the huge barrier to entry posed by all the neccessary APIs you need to master before you can get anything done. Kids in particular need some instant gratification from their efforts, and it isn't happening if you need loads of boring broilerplate code just to display a window, let alone do anything with it.

    I don't agree with your idea that the language needs to be BASIC, though. You can follow through an algorithm with pencil and paper while using a structured language, too, and I think structured languages start teaching good practices about dividing problems into smaller subproblems right off the bat. Python is probably a nice first language; Ruby is another, but the latter has has some peculiarities (blocks for example), which are nice for those who understand, but won't make for a good learning experience. The issue still remains that you aren't drawing pixels on screen easily... perhaps there should be some kind of a beginners' graphics library that one could call.

    The academically minded side of my brain would like to suggest something daring in educating a youngster to appreciate computation for its own sake: use Scheme! It's an easy Lisp dialect, implementations of which are freely available. The syntax is minimal, and it encourages thinking about programming in terms of function evaluation. The Sussman book "Structure and Interpretation of Computer Programs" is a MIT course book and a great introduction to programming from the functional programming perspective, and seriously, I have a feeling that a bright kid would be able to learn the language reading that book...

  • FreeDOS?

    FreeDOS (http://www.freedos.org) comes with a BASIC interpreter and a LiveCD. Problem solved? :*)

  • O'Reilly covers Learning Smalltalk in seductive article

    It was nearly 20 years ago when I first met Smalltalk-80, but I still remember those heady days of infatuation, when I was convinced "this is how programming languages and even operating systems should be". Smalltalk-80 was Mrs Robinson to my idealistic Benjamin Braddock.

    Skimming Keith Fieldhouse's article[1] on O'Reilly OnLAMP.com, I had flashbacks to that old fling.

    As several other posters have speculated - could a Smalltalk visual environment be a conceptually ideal basis for teaching programming to children?

    [1] "Smalltalk for Everyone Else", http://www.onlamp.com/pub/a/onlamp/2006/09/21/learning_smalltalk.html

  • You are correct

    Being barely twice your son's age, I can remember hacking out BASIC into my TRS-80. It allowed me, as you say, to understand what's going on under the covers. I credit that early experience and knowledge with what I've achieved in my career.

    That we've gone from an easy-access environment such as that to what we have today in that short a timespan is unacceptable.

  • Why Johnny Can't Code

    "...there is no easy way for kids to get hooked om programming."

    BASIC was an awful language. Today there a number of free, well designed languages which are available to run under Windows and Linux and which can be used:

    - for simple command line programming

    - to write simple text-based programs using "Notepad" (or other text editor)

    - to write Windows programs

    - to learn "object oriented" programming

    One language which can do all this and more is Python. Take a look at www.python.org. Regards,

    Sean Connolly

    seandc@att.net

  • Re: Underlying Issue Ignored

    I think that rmillen makes a good point -- that many people (including children) do not know "how things work". However, I disagree that BASIC programming would address this problem, for two reasons.

    First, even in the good old days, those who learned BASIC on their PC still still had very little idea how their computer worked. They only understood one layer out of many: solid-state physics, digital circuits, computer architecture, raw programming, assembler, boot loader, operating system, etc.

    Second, these days, almost nothing of any consequence uses BASIC. Thus, having learned BASIC, they will still not know how things work!

    Numerous posters have pointed out programming languages with free interpreters and compilers: Java, Python, Javascript, PHP, Scheme, Logo, HTML, and on and on. What is amazing to me is the sheer quality of what is available for free. Not only interpreters and compilers (often with their own source code!), but excellent documentation and tutorial materials, a wide range of well-documented libraries, and professional quality programming environments (including their own source code). Anyone whoe can remember back just 15 years will understand the huge change that has occured.

  • Emulators

    Personally, I think what David Brin ultimately did, which is purchase an actual Commodore 64 for his son to tinker with, was the best thing he could have done. The second best thing he could have done (and could still do) is download one of the myriad emulators that exist for old personal computers such as the Apple ][, Atari 400/800, Tandy TRS-80 and so on. They are all available for free, and provide a means by which to understand how computers work at the most fundemental level.

    The bottom line is, the architecture of a modern-day PC is not that much different to the personal computers of the late '70's and '80's. However, you cannot "program to the metal" of a modern-day PC, not even if you have an operating system like Linux installed--there are always layers of software in between you and the hardware that you simply cannot cimcumvent.

    To those recommending that a language like Python would be better than BASIC, you are missing the point: each of the personal computers of 30 years ago featured an idiosyncratic version of BASIC that actually helped teach budding programmers something about the machine itself. This, in my mind, is far more important than learning how to program in a language such as Python, which is completely machine independent.

    I am willing to bet that most kids these days have very little understanding of how a computer actually works, because they don't get to tinker at the hardware level with a modern-day PC or Mac. My first computer was an Apple ][+, and I spent many enjoyable weekends learning how to program it in BASIC and 6502 assembly language. I ultimately gained "complete mastery" over that machine--something I cannot even claim about the PC running Linux and Windows that I have now, 25 years later.

    The best programmers, in my opinion, are those that had the enthusiasm to dive into the computers of their youth and learnt how to master them. I see no reason why kids of today can't learn just as much from a Commodore 64 as kids of 30 years ago, especially since the computers of today are largely a black box whose secrets cannot be penetrated.

Most Active Stories

Read More

Letters Help

Daily Delivery

Salon headlines in your mailbox