3 ms·
I can only speak from my own experience, so I don't know if this holds for everybody, but I think the guy misses a lot of important points. When I was 13 I dis
by scottdw2 17y ago
I can only speak from my own experience, so I don't know if this holds for everybody, but I think the guy misses a lot of important points.
When I was 13 I discovered programming, using QBASIC, on my old 286. This was in 1993, before the Y2K and .COM hoopla, and before anyone I knew had access to the internet, or even knew what the internet was.
Back then, if you went to the library by my house, they had about 2 books on programing, from 1982, that had nothing more exciting in them than "this is how your draw a maze in BASIC on your Apple II". Every now and then you might be able to find an old issue of Compute, with some code samples in it. For the most part, however, there was a pretty large dearth of information about programming accessible to a 13 year old kid who didn't know any one who knew anything about programming.
The thing I did have, however, was a copy of nibbles.bas and access to the QBASIC help screens. The language was small enough that one kid could read through every item in the index, and figure out what the meant. There were a few things, like BLOAD and BSAVE that I couldn't understand because I didn't know what pointers were or how they connected to arrays. Other than that I was able to figure everything out by just reading through the help screens.
This, I believe, is what made BASIC suitable for use by kids. It wasn't complicated. There wasn't a vast class library. The ability to produce sound was limited to the PC speaker, and there certainly wasn't any 3D graphics. There wasn't a windowing system, or any kind of scheduler.
BASIC certainly didn't have huge libraries to import.
Everything was super simple.
That made it approachable. It was something a kid could explore by him self, understand, and appreciate.
When you are exploring computer programing, writing apps that play pong or let stick figures shoot at each other with laser guns, all the rules on the right way of doing things just get in the way. They keep you from having fun. All you really need is a few variables, SCREEN, CIRCLE, LINE, BEEP, COLOR, and GOTO.
You definitely don't need classes, fields, closures, while loops, or even proper indentation. That stuff doesn't add to your DISCOVERY of computing. Yes it makes you a better programmer, but with kids that shouldn't be the goal.
The goal should be to HOOK them on programming. Rules just get in the way. Python has way too many of them. A lot more than BASIC.
Python has to be taught. You have to teach people: use control structures, indent your code, model things with objects, import these things. That makes it great for, say, college freshman, or AP students. It's not really suited for kids though.
BASIC can be explored. Easily. You can hold the entirety of BASIC in your head, at once. Everything. You can't do that with python, or even lisp (because of all the libraries).
So I say, give kids basic, and let them roam free for a while.
Let them make laser games out of spaghetti.
I think sometimes its easy to forget how much fun it was to write crappy spaghetti code that did small amusing things. Think back to when you were a kid, before you were old enough to know better. That's probably what got you hooked. Its what got me hooked.
That means BASIC, or something like it. You have to let people be creative, and messy, long before you start throwing rules at them. You can teach kids structure, and recursion, and pointers, and all that stuff later.
- qw 17y agoThere were better BASIC languages out there at the time. One example of this is AMOS. It was one of the very few pieces of software that I bought for the Amiga, because of the great manual. It was years ahead of qbasic/quickbasic and had a great library for moving graphics around. http://en.wikipedia.org/wiki/AMOS_(programming_language) http://en.wikipedia.org/wiki/AMOS_(programming_language)
- mechanical_fish 17y agoI discovered programming ... before anyone I knew had access to the internet, or even knew what the internet was. Let me be blunt: Our kids are smarter than we are. Or than we were, anyway. They're growing up with Google. The reason BASIC had to be so simple is that Stack Overflow didn't exist. You had to be able to grasp the language on your own, with minimal help, because at best help was miles away, or on the other end of a one-to-one telephone connection, or -- at the very best -- on a one- or two- or maybe even eight line BBS connection. Now I venture to say that by reading the walkthroughs on Slicehost a ten-year-old could get an entire LAMP stack configured and start serving web pages with far less intellectual effort than I spent in writing a "guess this number between 1 and 100" program on the Commodore PET. There are individual videogames that are harder than BASIC was, to say nothing of the collectible card games or the RPGs. The network is a big deal. It changes everything. In another generation it will take intense intellectual and creative effort to imagine just how geeks lived when I was ten, just as I'm still not sure I grasp how (e.g.) the atomic bomb was invented without the benefit of any electronic computer whatsoever, even a pocket calculator. (I have, at best, an abstract and intellectual grasp of what slide rules were about. I don't know how to use one.)
- AlSweigart 17y agoHi. I wrote that blog article. I think you may be missing the point. It's not that BASIC is bad at being a learning language. It's great for that. I learned programming with BASIC myself in that same timeframe. But today we have languages that are superior and don't have the hang ups that BASIC has. I don't see why we should be devoting resources towards new (and mutually incompatible) implementations of BASIC. Python is easy to learn and can scale to any level of sophistication (but it doesn't require you to know the advanced stuff to write little games, like Java requires you to learn OOP).