
Many developers who learned programming in the 1980's got their start with BASIC interpreters that came with their personal computers. One didn't have to do anything special to download BASIC and install it - at soon as the computer was powered up, BASIC was available.
These days, however, turning on the computer brings up a windowing environment. This is great for most users - the usability of today's computers is miles beyond what existed in the 80's. This wouldn't be a problem if these windowing environments came with a programming language.
But they don't! What is today's omnipresent equivalent of BASIC that comes, by default, on one's computer?
There isn't one, and this is unfortunate. Microsoft could change this in an instant by including a personal version of VisualStudio with each Windows installation, which might allow one to write programs in VisualBasic or VisualC++.
What I would prefer, however, is that all Windows computers come with a Java Developers' Kit and a free version of NetBeans or Eclipse already installed. Getting Microsoft and Sun to come together on this would never happen. But the benefit would be huge: Java has such a strong developer community, and that could really encourage some aspriring developers.
BASIC was basic. There weren't many commands - IF/THEN, PRINT, GOTO. We've come
a long way since then: there are so many more things that are possible, many of
which require specialized libraries.
In addition, programming paradigms have changed. Even today's VisualBasic programs feel more like object-oriented programming.
All of this has complicated today's programming languages. Part of this feeling of overcomplication might stem from a lack of intuitive and simple, yet meaningful, tutorials. "Hello World" is not a tutorial. A program that averages an array of a student's grades isn't meaningful.
Today's learners need something that's easy to learn and makes an impact. Things that interact with modern-day web services (Flickr, etc) would be really cool.
There's a bright side: Once a learner has understood a language, the complexity of that language enables the learner to do more advanced things. For this reason, I don't advocate the creation of a simpler language; I advocate the creation of better tutorials.
Today's top programming resources, like Dr. Dobb's Journal, focus on business problems or technical details. This is great for their audience. But I can't think og any modern-day resources that are developed specifically for recreational programmers: those programmers who are either learning how to program and need inspiration, or those who have been programming for a long time and just enjoy coding cool things.
In this article, I put forth my idea to create magazine and web resource devoted to recreational programmers. If you would like to assist me, your help would be appreciated - specifically, I need writers.
One of the de-motivators for programming is that you just don't need to in a lot of cases because of the prevalence of good end-user software products. Why try to write a game when you can just play them for free? Why learn how to write a financial calculator when you can just buy one?
In days passed, almost everyone who owned an automobile knew a little something about fixing it. Since then, cars have changed in such a way that repair was relegated to mechanics. The same thing is happening (or has already happened) with programming.
You can't fight progress, and admittedly, the prevalence of useful products is positive progress, but it does reduce the motivation for some people to learn programming. But I also don't expect that every computer owner would want to know how to write programs.
I expect that there are many potential programmers out there who need some spark to get them going. I hope the issues I've outlined here can have an impact in clearing whatever roadblocks exist to delivering those sparks.
- "Why Johnny Can't Code" by David Brin
- "Robots Make Computer Science Personal" by Douglas Blank