Hacker News new | ask | show | jobs
by kzhahou 3692 days ago
Why is BASIC totally left out? An entire generation was inspired by power-on basic in C64 and other platforms. More than just "inspired"... Some huge amount of today's technology wouldn't exist otherwise.

  I know I'm stuck in the past, but that's what I want for my kids.  Flip open the laptop and boom, theres my programming environment, except now with easier graphics/sound APIs.  
Anyone know how to get this, without buying a c64 + CRT monitor?
15 comments

It's really hard to do something like that with kids today. They have so many options now between consoles, iPads, etc. There's way too much instant gratification. You're never again going to see a generation that has the patience to type in the source code to a game published in a magazine.
People have been saying "you're never again going to see a generation that has the patience to X" for generations, when really X is just no longer a thing anyone wants to do.

When was the last time you typed in source code from a magazine? These days we all expect software to be more complex than what you can fit on a printed page. People have patience for the things they find exciting: nobody is excited by dinky type-in games any more.

I still type in source code when I'm going through tutorials for new languages or libraries. I find I absorb it better than I'd I copied and pasted.
Untrue, at least in the case of my 9 year old. He loves writing Javascript "apps" from bitsbox (bitsbox.com). I learned by poke'ing on an Apple ][ because that was the tech of the day. Apps are the tech of the day for kids and he loves seeing the things he can create.
I have a little side project in this vein: http://akkartik.name/post/mu (apologies for the spam; I already posted my link elsewhere in this thread). No graphics or sound yet, unfortunately. I've been using it to teach long-distance, so the way we work is by running it on a VPS over a shared tmux. So it's completely text-mode. But in text mode you can do a lot with just raw cursor mode and 256 foreground/background colors. One of my students just built a card game with it.

(Another interesting feature of it: the programming environment is itself built in the Basic-like language. So there's a large example app that comes with the repo, along with a few small ones.)

Most platforms don't have a power-on equivalent, but BASIC derivatives with better sound/graphics/etc. APIs [0] are widely available (the particular selection will depend on platform, e.g., RFO-BASIC for Android.)

[*] well, maybe not better in all cases; for lots of simple things, some of the 1980s home computer BASICs had pretty good simple sound synthesis APIs.

One of the great things about C64 BASIC was that it didn't do too much hand holding. It had syntactic simplicity, but you had to deal with the underlying machine. Want to draw a circle? There was no "circle" command, you had do the math and flip bits with peeks & pokes & apply Boolean logic to retrieved values.

As a kid ~12 or so programming the C64, that did a few things that I think languages like those being presented here miss: 1) the computer didn't talk down to me as "being for kids", yet was simple enough to get me started without large amounts of previous technological background required; 2) the computer had more advanced capabilities that I could tackle as I gained experience (i.e. the aforementioned having to deal with memory manipulation); 3) Because it wasn't built for me (a kid), it didn't have to pretend to keep me entertained... there was a mystery to it all that as I progressed, I became more ensconced in deeper levels of knowledge that was earned, not given.

Sure I wasn't doing brain surgery, or even software engineering, but those early lessons gave me the fundamentals of why certain things mattered and how to solve problems that weren't child proofed.

Have a look at Kano on the raspberry-Pi even if you don't buy the kit you can download the image. It is a really well put together package which I can't recommend highly enough. http://blog.kano.me
A tad more complicated than C64 BASIC, but: http://www.templeos.org/

Terry Davis (creator) likens it to the C64, though you're writing in CPP/ASM:

  "The vision for TempleOS, however, is a modern, 64-bit
   Commodore 64. The C64 was a non-networked, home computer
   mostly used for games. It trained my generation how to
   program because it was wide open, completely hackable. 
   The games were not multimedia works of art, but generated
   by non-artist."
That is awesome. I always joked with my wife that if we ever get our kid a computer early on, it wouldn't be an iPad, etc. that I'd figure out how to only give him exactly the sort of thing I had when I was a kid (a C64) and if figured that out, he'd be OK. The joke now becomes reality! :-P
Does anyone know if a bootable BASIC interpreter written in x86 asm exists? If not, it might be a fun project.
I built something like that, based on bkerndev (Bran's Kernel Development Tutorial) and the TinyBasic interpreter.

https://github.com/d99kris/nopeos

It's a bit of C and not only asm though. Also - I haven't tested it a lot, as my kid is only 3 years old. :)

For the Raspberry Pi, there is Risc OS Pico, a barebones Risc OS image that boots directly to BBC Basic. https://www.riscosopen.org/content/sales/risc-os-pico

There's also the FUZE and FUZE BASIC, a retro-y keyboard case and BASIC dialect for the Pi. https://www.fuze.co.uk/

I would also second the suggestion of the PICO-8, which is a Lua-based retro virtual console complete with its own built-in dev environment. http://www.lexaloffle.com/pico-8.php

I've been building a very simple development "portable" PC using a 7" TFT display, wireless keyboard, and a Raspberry Pi. At the moment, it just boots into a Linux login shell, but you can program it to boot into a desktop environment if you want (and if you have the power luxuries!). Of course, the Linux environment may be too much for kids, but this might be close to what you want. Also a decent overall price: altogether so far, I've paid a little less than $100 for this whole setup ($30 for the display, $35 for the RPi, $25 for the keyboard), though you could get it for much cheaper using a Raspberry Pi Zero ($5!) and a cheaper keyboard.
Maybe try this out — QBASIC is accessible in the browser via archive.org's dos emulation:

https://archive.org/details/msdos_qbasic_megapack

Get either FreeBASIC+IDE, BlitzMax, BlitzPlus, FnxBASIC, Browser BASIC or MonkeyX and place a shortcut to the program in the Startup folder on Windows.
PICO-8? Not BASIC but Lua, but I've had a lot of fun with it and it's very easy to get into.
Something that kind of mimics the C64 experience is load81: https://github.com/antirez/load81
Couldn't you use server linux distro with your user's shell set to a BASIC interpreter?
Hit F12 in a web browser.

Hit / in minecraft (more effective if you install scriptcraft first).

Open up a terminal window.

...none of these are "turn on and play". For any of the above, what's the command to draw a triangle?
What was it on the C64? I would have thought you would have had to write a program to do it. What is the command to spawn a zombie on the C64? Or to display a gif? Or to download data from an Internet service?
> I would have thought you would have had to write a program to do it.

Oh, definitely, but drawing itself was a primitive. With Javascript you need html, css, canvas.... it's a damn nightmare.