6 ms·
I learned to program with BASIC when I was young, but can't imagine why I would teach someone to program using BASIC when Python is available as an alternative.
by blacksmythe 16y ago
I learned to program with BASIC when I was young, but can't imagine why I would teach someone to program using BASIC when Python is available as an alternative.
- RodgerTheGreat 16y agoIf your goal is doing something practical with the machine, Python is certainly a better choice than BASIC. On the other hand, from an educational standpoint, BASIC shares an important trait with Pascal: It doesn't do much out of the box. In BASIC you have to do some work to extract the minimum element of a list, swap two numbers, maintain a resizable array and any number of other trivial "algorithms" that Python's language features and libraries provide. Is it so hard to see that more sophisticated languages can take away opportunities to learn the fundamentals from scratch and gain an intuitive grasp of algorithm design?
- steveklabnik 16y agoThe problem is, without a lot out of the box, kids just aren't going to stay interested. HELLO THERE HELLO THERE HELLO THERE HELLO THERE HELLO THERE HELLO THERE ^C just isn't interesting anymore. Simplicity is important, but you should be able to do complex things in a simple manner. At least, that's the approach that I'm taking with Hackety.
- rbanffy 16y agoDoing interesting stuff on a world of GPUs and million dollar art budgets is very hard.
- steveklabnik 16y agoAbsolutely. But small 2D games are totally within reach.
- rbanffy 16y agoPacman or space invaders would not be interesting today like they were 30 years ago. You need design, music, smooth movement, multiple things happening at once... It would be a mess to do it in simple BASIC.
- steveklabnik 16y agoTruth. Which is why I think BASIC is a bad choice. But it can be easy with modern languages, and so that's why I think they're better.
- rbanffy 16y agoBut then you are distracting students with pretty pictures and music and not teaching them what, say, recursion is.
- chromatic 16y agoAre you sure a motivated eight year old would give up on programming entirely because he can't program an entire Pokemon game by himself in BASIC?
- dkarl 16y agoI don't think you need to worry about that. I had played entertaining video games before I started programming, and never produced anything of similar quality. None of the games I made came anywhere close to resembling the glitz and glamor of the media or video games I loved. It's easy to look back at the 1980s and see nothing but drabness, and conclude that programming provided a competitive entertainment experience, but that's not what it was like at the time. Sometimes I'd borrow a new game disk from somebody, boot from the 5.25" floppy, and the graphics would blow me away. Nothing like the crappy graphics I could make. I wrote programs to solve math programs, generate mathematical patterns on the screen, quiz me on my schoolwork, and do simple text-based games that were already lame by the previous decade's standards. Unless you were truly exceptional, the games you wrote for yourself did not compare at all with the excitement of games you could buy for a PC or an Apple II, and even the truly exceptional kids who created entertaining video games had to be willing to slog through hours of hard, unglamorous work. Kids today who expect programming to be entertaining the same way movies and video games are entertaining will do exactly what those kids did in the eighties: turn up their nose at programming and do something else. Kids who enjoy programming will program.
- steveklabnik 16y agoI'm right there with you man. That was me, too. My first computer experience was Adventure, and I basically made text adventures for the first few years I was programming. That said, Pong in Shoes is 50 lines. It's pretty simple, and gives you an actual game. I wrote the basics of a SNS era RPG, and it was around 300 or so. I don't think this is a bad thing.
- btilly 16y agoHowever from an educational standpoint Pascal has a great advantage over BASIC. It was invented after people came up with structured programming, and is designed to make structured programming easy and natural. This is a pretty significant advantage to me. (Though these days I wouldn't choose either.)
- rbanffy 16y agoAn interpreter is handy. I don't remember any Pascal that had an interactive environment.
- btilly 16y agoGoogling turned up something called Pathcal from 30 years ago that allowed you to do incremental development in Pascal, that would catch errors on the fly. You were even able to modify the environment from within itself. I know nothing about it and so don't know how interactive it actually was.
- Florin_Andrei 16y agoOTOH, you don't have to teach them everything from the beginning. Even if the language is smart and feature-rich, you can always pick and choose. And when the bright kids explore it and discover the cool features all by themselves, imagine the thrill.
- abecedarius 16y agoOn the other hand, on the Apple ][ you could code a lo-res Breakout in just a few lines of Basic -- a dozen? (From a dim memory of Wozniak's article in Byte -- he had a couple screenshots with the code in the lower third of the 40-column screen and the game running above.) Python's a far better language, yes, but I haven't seen a game library quite so low-threshold.