Letters to the Editor
-
Solution.
I am surprised that you have not mentioned HTML as a new beginner's programming language, or JAVA.
-
Professional implications
I found Brin's essay to echo a complaint I've had for several years now.
I am a professor at one of the University of California campuses. I teach a range of subjects in biology and anthropology. When it comes to educating PhD students, I teach applied mathematics, statistics, and numerical methods to biologists and anthropologists. We get extremely bright PhD students, and they are very computer literate, but...
...very few of them can write a program that will even compute the average of a series of numbers. It's extremely frustrating. Each of them has spent many many hours in front of computers on their way to our PhD program, but very very little of it was spent building sets of instructions. Older scientists are often less computer saavy, but know more about programming.
This means more recent PhDs often actually know *less* about programming than previous generations do! If these students could write simple programs for their own use, they could save themselves countless hours of coding and recoding data. They could validate their statistical methods.
Look, specialization is largely good for society, and having software engineers do most of the programming these days is a reflection of specialization. It's similar to how automobile repair has become an increasingly specialized trade. But scientists often need very specialized programs. Waiting for software engineers to make some pretty pre-packaged environment will often not work for us. We have to take out our own trash. We have to fix our own fuel injector. Heck, we have to build our own fuel injectors.
It's gotten to the point that I ask first-year PhD students if they can program (most, "No") and require them to pass an exam on simple programming (in a language of their choice) before they can advance to candidacy. We make it work that way. But most universities just let their PhD students struggle on their own and probably never learn much about programming. This varies by discipline, of course, but programming is no less useful in ecology than it is in astro physics.
In my experience, the younger the students, the worse their knowledge of programming, on average. And it's damaging to the practice of science. It's certainly not Microsoft's responsibility to help us, but I'd sure appreciate it if they put BASIC on every install and made it a default desktop icon.
-
Nowadays, the competition for kids attention is too fierce
I teach programming, AP Computer Science. Like David I am so sad that the day when programming was the coolest thing you could do on a computer, is long gone. Like David, I wish accessible programming environments were more popular. But I disagree that a lack of accessible programming environments has caused it.
Squeak (squeakland.org) is just one example and is everything a programming teacher could ask for. It is a language which, even though it's over 30 years old prepares kids well for modern programming (unlike BASIC). It is proven to be more accessible to new learners and children than BASIC. It gives young programmers the ability to incorporate all kind of modern multimedia into their programming. In my fantasies, all elementary and middle school kids would be raised on it before they got to me in high school.
So why aren't? Because now the competition for kids' attention is fierce and there are lots of cool things to do on computers without having to figure out why this algorythm didn't get the data it needed.
I don't have a solution. I guess from now on people will learn to program only when they are paid to.
-
Redux on redux on "Why Johnny can't code"
Mr. Brin writes, in attempting to illustrate why many don't "get" his article:
"Something obscure or needing downloads… can you really convince yourself that we’ll get a majority of kids to experience that?"
To which, of course, one can only respond:
Something obscure like BASIC, something needing line numbers and using non-intuitive words like PRINT to display things on a screen ... can you really convince yourself that we'll get a majority of kids to experience that?
You wouldn't teach skiing with old fashioned non-quick-release bindings.
You wouldn't teach driving with old fashioned non-sycnromesh clutches.
You wouldn't teach carpentry with old fashioned no-saftey-cutoff, no-guard bench tools.
So why, Mr. Brin, are you insisting that programming be taught with an absolute dog of an interpreted language? That's all that BASIC is. There are many other languages in that class.
Face it, you preferred loading programs from a cassette player with your son, than downloading something from the internet. Trading something he's familiar with for something you were once familiar with.
And you wonder why plenty of letter writers can't see past your nostalgia!
There are new, modern, better interpreted languages out there, where the connection to "what happens beneath" is in fact far better than it was in BASIC.
Every single lesson a beginner would learn in BASIC can be more clearly understood, more quickly surpassed, using a modern interpreted programming language.
Better yet, connections from these languages to something a modern kid might actually want to do (jazz up a webpage, program a game in Flash, etc.) are well-defined and actually work.
Something you cannot say for BASIC.
You say you want "something for everyone". A "lingua franca". Science fiction writers often overestimate the utility of a "galactic common" or simply presuppose that in the future everyone will speak Amglish.
In truth there is far more to be gained than lost by having many languages; modes of expression; and if you accept the Sapir-Whorf hypothesis, the concomitant ways of thinking.
It's the same with computer languages. The multiplicity of options for a beginner programmer these days is not a bad thing, but rather a sign of a healthy industry in its prime, and a sign that "Johnny" will be able to code rings around the likes of you and me.
If only we'll stop hamstringing the poor kid with our nostalgia for the bad old days.
-
There are still plenty of tools...
Tcl is a prime example. Easy to learn the basics, powerful in scope when needed.
If you want true line-by-line programming, look at MatLab or one of it's many free clones (Octave being an excellent choice).
If you're stuck in Visual BASIC, Java, Ruby, or other, then you haven't looked very hard.
