It might or might not surprise you that I learned to code in Basic. I suppose my first real attempt at building a solution was using complex macros and batch files, but I was trying to learn more and a friend gave me a copy of Turbo Basic. I struggled to figure it out and went to the book store to buy a book to learn (pre-internet days you know). They didn’t have a book on Turbo Basic, but they did have one on Quick Basic and it came with the software, I think it was $90, so I bought it after debating the merits of spending about $60 more than I had planned on something that might or might not turn out to be useful. It did turn out to be useful. I read and tried and tried some more and eventually wrote several apps to help me at work, apps that could read/write dbase III formatted files so I could do reporting from other apps. QB was a good learning experience. You had to monitor the keyboard input, you had to do something when a key was pressed – backspace didn’t automatically delete a character and move the cursor. If you wanted to do a popup you had to save the state of the screen, draw the new stuff, then restore the state. That’s all stuff hidden by the OS today and that’s good. I don’t know that I’m better at anything for having that experience, but sometimes it helps in odd ways.
I’m writing this after running across Fifty Years of BASIC, the Programming Language That Made Computers Personal. One of the points in the article was the ubiquity of a Basic app in the OS made it very common to have code samples in text books and somewhat common for students to have at least tried a 10 or 20 line app, something that might have connected them just a little bit with the science behind the magic of a PC. Another point was that once you get past variables and flow control you’re close to maxing out (there are arrays, and plenty of other stuff, but no objects in that kind of Basic). Both are interesting points because it’s about trying to find the sweet spot between easy to learn and so easy to learn that you learn bad habits. I think easy to learn matters more than anything else. The people who want to learn programming and have the aptitude just need a taste of it and off they go, the trick is to show them what’s possible – to get them over that first learning curve. I don’t know that Basic is best for that, certainly there are tons of languages that try to solve this particular problem. Do the bad habits stick? Maybe, maybe not. I’ve migrated from QB to Visual Basic to Visual Basic.Net and I wouldn’t want to go back. I like objects and I like .Net. I may have some bad programming habits but I doubt you could trace them back to QB.