Live data from Hacker News

Lost Lessons from 8-Bit BASIC

prog21.dadgum.com

71–80 of 85 posts

Re: Lost Lessons from 8-Bit BASIC

#71
The author mentions jokers breaking out of his Atari demo loop written using BASIC.

I first learned BASIC on the Radio Shack TRS-80 Model 1. As a child, there was a favorite jokester demo loop involving Qbasic with Windows. I'd visit a department store, break out of each store computer's demo loop to DOS, and then type up a simple Qbasic loop with random SOUND calls where I had painstakingly tested and memorized random frequency ranges and delays to simulate the sound of water running.

Returning these computers to their store demo loop left a sea of scratched heads in my wake.

Re: Lost Lessons from 8-Bit BASIC

#72
post #66

Earlier quoted context omitted.

I have a lot of respect for Brin, but it's amazing how wrong that piece is. There's more code being written now than ever before, not just by kids but by all kinds of everyone. There's an entire sub-culture of collaborative development - github, etc - which would have been impossible with 8-bit micro technology. Away from that, a lot of non-devs have hacked together simple VBA/AppleScripts. And not a few people with…

Nobody's arguing that it isn't easier today for the professional , but that doesn't really lower the barrier of entry for the barely interested. Never mind that we simply orders of magnitude more people with computers now, so that even with a drastically lower percentage of people actually starting some kind of dev environment we'll just have to come out on top. Yes, it's easier to create the good stuff (well, at lea…

more than the raspberry pi, i am optimistic about projects like jsfiddle, where kids can make cool things and show them off to their friends.

Re: Lost Lessons from 8-Bit BASIC

#74
post #40

David Brin and others have lamented the lack of an ubiquitous, interpreted, always-there programming environment to help get kids started down the path to software development. I tend to agree that it is a lot harder to penetrate the first layer than it used to be. So, from someone who also started with ROM BASIC, thanks for the memories.

Montfort et al described the same thing in the book "10 print chr$(205.5+rnd(1));:goto 10" [0]

[0] http://trope-tank.mit.edu/10_PRINT_121114.pdf

Re: Lost Lessons from 8-Bit BASIC

#75
post #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, ....

That is right, but you have to read at least 5-10 tutorials, before you can start to code ....

Or you are lucky and start at the right place (e.g. you download Python and start with a Python tutorial) ... but when you started with Windows, you might be out of luck, if you did not find some cheap way to access one of the powerful IDEs in existence (many are still very expensive or/and need that you read the same amount of tuts).

Re: Lost Lessons from 8-Bit BASIC

#76
post #67
post #31

I think the article misses the point a little bit. The IDE facets that the author fondly remembers isn't part of the BASIC programming language, it's part of the command shell. It's loosely akin to your terminal emulator running Bash. By default it works in real time but you can write more complicated routines programmatically and then run them at your convenience; and you can do so from the shell prompt (either via…

On those early consumer 8-bits, the command shell WAS the BASIC interpreter. You turned the computer on and you were right there in the BASIC environment! You couldn't do anything without typing in BASIC commands. Your other points are OK, but it really wasn't like a Bash shell. An interactive Python command-line is closer, but it's still a stretch.

A Bash shell is an command line interpreter. Bash is Turing complete and even supports more advanced programming paradigms than those early BASIC machines did (eg functions, different scoping, more advanced debugging and error handling, forking, etc). This is all just built in commands - I'm not including any other POSIX user land. In the right hands, Bash is every bit as much a REPL environment as an interactive Python or LISP shell.

I don't understand why you're discounting Python here though. Would you mind explaining to me why a REPL BASIC shell is different from a REPL Python shell aside the 20 years age gap between them?

One last thing, as I noted in an earlier comment, most of those BASIC micro computers did also support other languages and shells. The later models of the BBC Micro came with LOGO in addition to BBC BASIC and also supported Fortran, LISP and a few other languages. My Amstrad CPC 464 runs Locomotive BASIC but I also have a CP/M disk for it. And around the same time (and a even a few years earlier) there were LISP machines and other computers which booted into other language shells.

BASIC wasn't unique nor special in the regard that you're praising it for. Neither back then then nor now. What made BASIC micro computers special was how simple the language BASIC was (otherwise we'd all be looking back fondly of our Fortran or LISP machines!). And this is why I make the distinction between the shell and the language. Because there's always been and always will be a large array of similar REPL shells - the key distinction between them being the accessibility of the language.

Re: Lost Lessons from 8-Bit BASIC

#77

You can easily have this on a Linux machine: First install basic: apt-get install bwbasic Next find where getty starts the login program, but change it to run basic instead. In Ubuntu: /etc/init/ttyS0.conf: start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] respawn exec /sbin/getty -8 -n -l /usr/bin/bwbasic -L 115200 ttyS0 vt102 You will see this on the serial port: Bywater BASIC Interpreter/Shell, version…

That's pretty similar to what the OP covered. Except part of the attraction was NOT having to install or configure special tools. Remember having BASIC always-on was what made it so accessible. I get it, after you do this you can just log in and voila Basic. Still until Linux comes with this as a special user login, there's a gap in the experience.

Maybe this is an opening for someone to build some Linux distros in the flavour of old micro computers...

Re: Lost Lessons from 8-Bit BASIC

#78
post #31

I think the article misses the point a little bit. The IDE facets that the author fondly remembers isn't part of the BASIC programming language, it's part of the command shell. It's loosely akin to your terminal emulator running Bash. By default it works in real time but you can write more complicated routines programmatically and then run them at your convenience; and you can do so from the shell prompt (either via…

[deleted]

Re: Lost Lessons from 8-Bit BASIC

#79
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…

When I get into a funk thinking about the above points, I cheer myself up thinking that the % of people who used the 8-bits are probably a somewhat self-selected group, and that all the today's programming-unfriendly UX did is extend the computer use to the rest. But the original cohort will program today just as they did way back when.

And furthermore, today we have the Internet and its mind boggling amount of information. Did I like learning on my Atari 800 XL that came with a programming manual and booted up in 1s? Absolutely. Would I have killed to have access to all the hardware register information, instruction set manuals etc. that I couldn't get at the time without--in my country--being politically connected? You bet ;-)

Re: Lost Lessons from 8-Bit BASIC

#80
post #76
post #67

Earlier quoted context omitted.

On those early consumer 8-bits, the command shell WAS the BASIC interpreter. You turned the computer on and you were right there in the BASIC environment! You couldn't do anything without typing in BASIC commands. Your other points are OK, but it really wasn't like a Bash shell. An interactive Python command-line is closer, but it's still a stretch.

A Bash shell is an command line interpreter. Bash is Turing complete and even supports more advanced programming paradigms than those early BASIC machines did (eg functions, different scoping, more advanced debugging and error handling, forking, etc). This is all just built in commands - I'm not including any other POSIX user land. In the right hands, Bash is every bit as much a REPL environment as an interactive Pyt…

It depended upon the BASIC version, but the one you got on an IBM PC (the one embedded in the BIOS, usually only on PCs from IBM) was an odd cross between an editor and a REPL. Start out:

    PRINT "HELLO WORLD"
Press ENTER, and you get "HELLO WORLD" on the next line. Okay. Move the cursor up to the PRINT, hit the Insert key, type "10" then ENTER. You have now just entered a line into your program. Type LIST and you see

    10 PRINT "HELLO WORLD"
Move the cursor back up to line 10. Change the "10" to "20" and change "HELLO WORLD" to "IT IS GREAT TO BE HERE" and press ENTER. Reposition the cursor over the LIST command and press ENTER:

    10 PRINT "HELLO WORLD"
    20 PRINT "IT IS GREAT TO BE HERE"
Moving the cursor to the top of the screen wouldn't cause the display to scroll up, but that was more due to constrained resources than anything else. But other than that, the entire screen was the editor. Type in an expression to test it out. Go back up and fix it. Once it's fine, slap a number in front to add it to the program. As a REPL, it was vastly different than anything REPL I've seen since.
Post reply on HN