Fifty Years of Basic, the Language That Made Computers Personal (2014)
time.com
time.com
I wrote my first program on our family's Atari 800 computer. It was a budget machine with a mediocre, slow Basic, but it worked. Millennials are often surprised to learn that there were many Basic magazines with entire game programs printed in them. As a kid I would beg my mom to buy these magazines for me (much cheaper than buying real games), then meticulously type in the program. Inevitably, it would error out because of some typo, at which point I would have to pore over the code and find the problem. Learning how to debug at 9 or 10 years old! When I finally got the program running, I'd play it for maybe 5-10 minutes—the games themselves weren't usually very good or complex—then set about figuring out how I could cheat by changing the source code.
When my family later bought a 386, I mostly played store-bought games on it and left Basic behind. But my high school was progressive and during my freshman year I took a yearlong Basic class, using QBasic. Suddenly the 386 I had in my room (after the family upgraded to a 486) became a Basic machine again!
Basic set me down the path of a lifelong love of programming. First with Basic, then C++, and so on. The only thing I asked for for my 10th birthday was Borland C++. I was a weird kid.
These days macOS comes with Ruby and Python interpreters built in, and learning resources are better than ever. But it's just not the same. The world has changed, and there are more idle distractions than anyone could experience in a lifetime. Programming is hard and the payoff is delayed and not guaranteed. How can it compete with YouTube or modern video games?
A while ago I participated in a workshop by http://www.my-hexagon.com ; a Duinomite from Olimex was used there. It was a refreshing experience to see how immediate the response is from the sensors and how quickly you can control the hardware with a simple BASIC interpreter actually running on the board - a huge difference from Arduino when the kid is asking, "Dad, why does it take so long to upload the sketch?" Heck, even with Mindstorms you have this delay. Duinomite is a joy to use, the only drawback being its limited VGA output that is not great on modern high-resolution screens.
All the games show graphics. Because writing graphics and taking unbuffered input, is simple and easy in BASIC.
It took me a week, with nothing but an idea and a language manual, to write a primitive Pacman.
Today, I'm not sure if I could write such an easy graphical program without diving into some sort of graphics framework, struggle to find the right language bindings, and get frustrated with the framework not matching patterns common to the language.
There are few languages today that make it so easy to unleash creativity.
I was 10 years old, and on the bus to summer camp every morning I'd read this dog-eared book:
In between singalongs I learned to program. And loved it.
I was such a nerd. The counselors didn't know what to make of me. Dad complained I should spend more time outside.
Then I grew up, published my first commercial software title and turned that geeky addiction into a career. Thanks mom and dad for buying me that beat up old TRS-80! And thanks Mr. Kemeny and Kurtz for bestowing this beautifully approachable language onto the world, even if your original vision was shamefully bastardized by the time I stumbled upon it.
ps. You can read it, too: http://www.colorcomputerarchive.com/coco/Documents/Manuals/H...
Whether you love or hate BASIC, two ideas in the language still stand the test of time: friendly, readable syntax to make the language more amenable to users (subjective I know) and a small set of commands to reduce the complexity of programming.
Can those ideas still survive in programming languages today? Some modern languages possess one of these features, but rarely both.
Undeterred, I found a book on BASIC in a public library. The language was so simple and so straightforward that I was able to learn to program by just reading the the book. I had no access to a system running BASIC, but that book enabled me to go back to Fortran and write my first successful program (this time a less ambitious one) that simply printed a one page table of trig function values. Sadly, I've lost that first program's listing. I used to keep it folded up inside of my CRC Handbook of Standard Mathematical Tables, but it's no longer there.
Thanks to BASIC, I've had a long, interesting, and successful career.
Never been bettered for a beginner. Particularly when embedded on the machine.