Live data from Hacker News

Lost Lessons from 8-Bit BASIC

prog21.dadgum.com

21–30 of 85 posts

Re: Lost Lessons from 8-Bit BASIC

#21
post #2

There is one more important thing here: the 8 bit computer immediately invited you to start coding. The barrier to entry was incredibly low to the point of nonexistent. Compare this to a laptop today or even worse a tablet. I very strongly believe that perpetuating a "code me!" mindset vs the "consume me!" mindset has really big consequences. The ability to make your computer do something that you can do something wi…

Even the IBM PC and XT had BASIC in ROM, which worked much the same way; and it also came with a complete set of schematics and the source code of the BIOS (I don't think the source for ROM BASIC was included, since it was licensed from Microsoft.) While it wasn't truly "open source" in the legal sense and was still copyrighted, it gave users a chance to learn how their machines worked all the way down to the hardwar…

... I think a large part of it has to do with the notion that computers are somehow "magical" and "mysterious" things that don't follow the same rules of the universe as everything else.

Excellent point. Computers are indeed like bubbles of custom universes that don't follow the rules of this one. The web doesn't have a real-world metaphor.

How do those universes and their foundational laws get created? By programming, of course. We all know that the stuff computers do is just built up from simple stuff that's been meticulously assembled into layers of increasing complexity: electrons on tiny wires, ands and registers, ifs and structs, packets and sockets, requests and threads, etc. But that knowledge is not discoverable by using a computer today.

It's no wonder that children don't know how to deal with failures that occur in the real-world interface of these custom bubble universes, when all they're thought about that interface amounts to magic gestures that trigger actions within the bubble. When a magic wand stops working, how do you fix it?

Re: Lost Lessons from 8-Bit BASIC

#22
post #2

There is one more important thing here: the 8 bit computer immediately invited you to start coding. The barrier to entry was incredibly low to the point of nonexistent. Compare this to a laptop today or even worse a tablet. I very strongly believe that perpetuating a "code me!" mindset vs the "consume me!" mindset has really big consequences. The ability to make your computer do something that you can do something wi…

Earlier the barrier was the high price of a computer.

Today the barrier is that you have to specialize you more.

But on the other side you have more tools, more ressources (the internet), more help, more tutorials, ....

Re: Lost Lessons from 8-Bit BASIC

#23
What this article boils down to is two things: 1) Computers used to have a built-in language that would be immediately available, and 2) that language had a REPL.

If you wanted to get the same experience in any REPL without line numbers (and with Lambdas), you could say:

    mainprog = lambda{some lines of code};
    exec mainprog;
instead of:

    10 line 1 of code
    20 line 2 of code
    RUN
In the case of BASIC, prefixing a line number is a shortcut for saying "variable LINE-XX = lambda{some code}". Now we just need to get computers to come up with a standardized REPL readily available at boot time. Maybe if web browsers started to default to having a Javascript console prominently displayed at all times.

Re: Lost Lessons from 8-Bit BASIC

#24
post #17
post #5

Earlier quoted context omitted.

Nowadays a phone and a desktop computer are at about the same level of complexity in terms of code.

Sorry, got any sources to back up that claim? Smartphones are indeed complex but I highly doubt Windows phone has the same LOC as Windows 8 (despite them sharing the same core), same for iOS -> OSX

The download is certainly bigger for OSX Mavericks (5.3gb) vs iOS7 (750mb). OSX seems a lot more open in terms of understanding what's going on though.

Re: Lost Lessons from 8-Bit BASIC

#25
I kind of miss BASIC. One of the good things in those days was that printing a few lines or drawing a graph was about the limits of what the computer could do so it seemed cool. You can now run BASIC in a javascript interpreter in your browser (http://www.calormen.com/jsbasic/) but it's not cool anymore. I'd guess the nearest equivalent of something simple to learn that you can impress your mates with these days would be javascript - then you can make apps, funny effects on webpages and BASIC interpreters if you get good at it.

Re: Lost Lessons from 8-Bit BASIC

#26
Hmm.... the JavaScript console in modern browsers like Chrome and Firefox is probably the closest thing we have to the old 8 bit BASICs. It's always on, and available at the click of a mouse.

It's not as directly "in your face" as the BASIC was, of course, but it's there.

Re: Lost Lessons from 8-Bit BASIC

#27
I think the important message here is that simple programming has long been the niche of hobbyists and entrepreneurs, it's about time that we cornered this market and commoditized it. It should be really easy since it's small and unimportant.

Re: Lost Lessons from 8-Bit BASIC

#28
post #2

There is one more important thing here: the 8 bit computer immediately invited you to start coding. The barrier to entry was incredibly low to the point of nonexistent. Compare this to a laptop today or even worse a tablet. I very strongly believe that perpetuating a "code me!" mindset vs the "consume me!" mindset has really big consequences. The ability to make your computer do something that you can do something wi…

That's a false equivalence (at least I think that's the right term). Back then, computers were by a huge barrier to entry the exclusive domain to the kind of people who would grow up to read hacker news. Blindly typing in games from magazines without trying to understand them is the 1980's equivalent of "watching shit scroll by for hours makes me a Linux expert overnight". If that gives you an illusion of being able…

I know this isn't really your main point, but I think you're probably selling short the activity of typing in code from a magazine. Firstly, the act of typing in and of itself is an advantage in the task of learning to use computers. Secondly, no-one ever typed a program in perfectly, you would have to debug the program when you made a type. Sometimes the typo would create a syntax error and your interpreter would point you directly to the offending line. Other times the typo would result in still valid syntax, but your program would crash, and the interpreter might point you in the right direction, or might not. Lastly your typo might create a bug that just made the program function incorrectly. Hands up everyone that spent a day searching for the line that had a less than rather than a greater than sign typed in! The act of debugging these very real problems (without even talking about errors in the as-printed code!) is a very real introduction to programming.

Lastly, and most importantly, if you were into computers, uyou inevitably encountered code that was designed for the BASIC dialect of another computer. To make it run on yours, you have to read the code, understand what it does, and then modify it to use commands (typically graphics commands) from your computer's own dialect to make it work. At this point you're no longer even looking like you're just typing in code - it's full-on programming. At one point in my life, I carried around the information necessary to translate basic programs between TRS-80, Apple ][, Commodre-64 and TI 99/4A BASIC dialects.

We have lost this heritage. You don't need to type in code, you just download it from the 'Net. That means no slow reading of the code, no debugging typos, and no attempts to transfer code from one environment to another (as most development environments these days have got pretty good at virtualising the underlying system such that it presents a consistent interface to the programmer - my Javascript webpage generally works equally well in Safari, Chrome or IE)

Re: Lost Lessons from 8-Bit BASIC

#29
I know it's not exactly the same, but, open the Javascript developer console in a browser, and you have a somewhat similar capabilities at your fingertips. You can alter your whole environment if you consider the particular webpage you're visiting to be your whole environment. You don't need to do much more special for "cos" there either, just type Math.cos(2) / 2.

And if you're using Linux, it's easy to be welcomed by the bash prompt of course (and I hear Mac uses a Unix terminal too now these days).

Post reply on HN