has reached the end-of-life and is now read-only. Please see the EOL announcement for details

Picking up again really is like riding a bike.

It's not the prettiest language, or the most elegant - not by a long shot, but working in it again I'm reminded of what an incredible gateway drug it was for so many of us to a life long love of computing.

There's something super powerful at play here beyond . I do think there are things we could learn from it in modern designs.

· · Web · 5 · 9 · 42

Just a tiny teaser example. I wrote this ugly bugger simple drawing program in < 10m:

@feoh What system is that? "Graphics 5" and Plot, say #C128, but "stick" and "strig" rule it out.


Atari 8 bit BASIC. The original version, not any of the nicer XL, XE, or Turbo varieties :)


My question is "Is it BASIC, or is it such direct access to the hardware?"

For example, if Lua had been an option, would that have done the same?

@emacsen It's a valid question. I think the answer is: maybe? Like I said in a previous reply to someone else, part of BASIC's charm is its REPL. I guess you could easily create a REPL in Lua as well.

So yeah, if you gave me a Lua REPL with direct hardware access to an architecture simple enough to fit in my brain, then I'd probably love it just as much if not more.

Got such a thing lying around? :)

@emacsen HA! Too funny we both arrived at the same place at the same time in different replies :) Totally agree.

I love tic-80 and have a game I started in it that I SWEAR I will finish one day! :)

@feoh @emacsen at some point I will get back to but right now my side-projects stack overfloweth and that one's a couple deep

@dan @feoh

> Today it's a Lua interpreter and a program that consumes almost all of the available RAM to draw rectangles on the display of a PineTime smart watch.

A very honest README.

@emacsen Actually thinking about it your choice of comparison to Lua is VERY apt and rather interesting. Lua is a simple language but one that can be incredibly expressive and powerful. So is BASIC, but we can't ignore the fact that Lua's designers had another 30 years of prior art to work from that BASIC's original creators did not :)

In a sense, platforms like PICO-8 and TIC-80 are kind of what we're talking about here, even though they don't strictly speaking exist as hardware.


I'm not dismissing the importance or innovation of BASIC, or LOGO (which is what I started with on the TI-99).

I consider TIC-80 to be a bit of almost retro-futurism? It's the computer we wanted but never had.

OTOH it doesn't have any kind of significant IO functionality- you can sort of almost hack it in if you bang the registers, but... no :)

@emacsen No I get that, and I don't want to come off as glorifying BASIC as somehow being the perfect programming language. ZOMG it isn't.

However over the last year or so I've been really getting back into Atari 8 bit hacking, and I just found myself sitting there at an ATARI BASIC prompt, typing in expressions, making pretty graphics on the screen, and remembering how EASY & welcoming it felt all those years ago to turn on a machine, get a READY prompt, and start exploring.


100%, and moreover, while I didn't have an Atari, the Commodore manuals were incredibly friendly and took the new computer owner through the functionality.


I didn't actually own a C64, but I did own a VIC 20, and the manual for it is is clearly a computer programming manual written for children.

@emacsen Wow that is rather impressive! Back in the days when software and hardware actually came with meaningful documentation and not just a tiny slip of paper with a URL in utterly unreadable tiny text :)

@feoh @emacsen My TV back then came with schematics of the internal circuit boards and the pin layout of the SCART socket on the back.

@emacsen @feoh "If Lua had been an option, would that have done the same?"

Other languages were available for 8 bits, but support for hardware commands varied.

BASIC was the standard for pack in firmware/cart, because it got an early lead during a time when type-in programs were more important than any sort of software distribution on tapes/floppies.

So, other language offerings had varied reasons for even existing, and thus varying sorts of support for the hardware.

@drwho Yes indeedy! It's what I learned on, with all its dimples and warts :)

Super interesting learning about its history and how/why it's so different WRT things like array handling than so many other variants.

@feoh I took some time to learn some Atari BASIC this past winter, and I found that it helped me understand some concepts more easily in a later Udemy Python class that I took. BASIC was my first language I messed with at all as a kid.

@comchia Yeah it's interesting isn't it? Like, the language is conceptually small & simple enough that it's easy to fit into your brain, at least that's the way it feels to me :)

I think Python can be super easy to get started with too, but unlike BASIC which, at least with the classic implementations has a relatively simple and constrained syntax, the Python well runs VERY deep indeed :)

@feoh @comchia Tough question. I think BBC BASIC is well-regarded but in recent years I've used bwbasic.

@lopta @comchia You don't need to grasp for an 8 bit version just because that's what we've been chatting about! Modern variants are cool too :) Bywater looks pretty neat actually.

@feoh @comchia I have used QBASIC and I think GEMBASIC in the past - "modern" variants with labels instead of line numbers and Pascal-style subroutines.

@lopta Yeah dealing with the line editor and line numbers is definitely a throwback :) And there's no easy way to renumber either!

@clacke @feoh @lopta Camputers Lynx BASIC had/has floating point line numbers

@ukscone @clacke @lopta I had never heard of this machine before! FASCINATING! You Brits had all the quirky cool computer brands :)

@feoh @clacke @lopta it was a time when if you had 50 grand and a dream you too could become a computer manufacturer

@ukscone @clacke @lopta I sincerely can't decide whether I think that's cool or headache inducing :) Whynotboth I guess? :)

@feoh @clacke @lopta the guy who wrote the camputers lynx basic didn't have the hardware when he was writing the basic just a trs80 m3 so he and his at the time girlfriend sat in their living room surround by basic manuals so took bits from bbc basic, bits from trs level 2, bits from speccy basic, bits from xxxxx, ... then i suspect had a quick smoke ;-) & added more stuff :)

@lopta Kind of interesting IMO when you look at what modern BASIC versions are floating around these days:

A) There are a TON of them
B) There are a TON of them that are either 100% commercial or have some free and some commercial bits

BASIC may be the 'cold dark matter' programmer's language of choice :)

@feoh @lopta Richard Russell's BBC BASIC for SDL 2.0 — - is one of the nicest free interpreters. Runs on lots of platforms.

Richard was on the BBC's language committee, wrote the Z80 version (which was roughly contemporary with Acorn's BBC Micro version) and has been supporting it ever since

I have an overly large list of BASIC things, if people care

@scruss Wow this looks BRILLIANT tyvm! Cross platform including mobile, and free :) Plus named functions and optional line numbers!

@feoh and EVAL; don't forget that one

There's also a Raspberry Pi Pico port.

The main developer isn't in great health, and his now rare online presence can be difficult. Don't expect modern github- style responsiveness. Try to get answers from other people first

@scruss Open source software is a gift freely given with no strings attached. That means the gent who wrote it owes me NOTHING and I take that pretty seriously :)

Watching clueless people bludgeon developers gifting their blood, sweat and tears gets more and more painful all the time.

@feoh that's a good attitude to have. There's a little more to it than regular courtesy with this developer, though ...

@scruss Also I for one would love to see your overly large list of BASIC things :)

@scruss Awesome! So great to see so many people dipping into the retro well. There really is a LOT of great tech there just lying around waiting to be appreciated and to teach younger folks important things about computing that are even more valuable today in some ways :)

@feoh I dunno; BASIC might introduce some simple ideas easily, but there's a lot of it not to like. TBH, CircuitPython on Pygamer hardware or similar might be more instructive

@scruss I don't personally feel like it's a good comparison. Python has plenty of warts, and they teach different things IMO.

People in technology tend to hold binary views on just about everything. EITHER this OR that. I don't buy that viewpoint. I think we are blessed with an abundance of riches :)

@scruss I will say, to your point, that one of the things BASIC and Python/CircuitPython have in common is extreme interactivity and real time feedback loops via a REPL.

I know 1980s BASIC READY prompt doesn't seem like a REPL but it most assuredly is one :)

@feoh oh, it's very much a REPL. The fact that variables persist after the end of a program for checking is magic

@Wintermute_BBS OK so what's *your* favorite BASIC implementation? :)

This conversation has me looking at more modern free BASICs and Chipmunk BASIC is looking pretty neat :)

Xojo looks neat on the commercial side, but I'm not going to pay for BASIC no matter how spiffy it is :)

@Wintermute_BBS Microsoft BASIC I'd guess given your pinned tweet. I'd never heard of the RC2014 before. That little board looks VERY neat!

@feoh it is a fantastic, modular platform. you can turn a simple starter kit into a full blown CP/M beast with sound and graphics capabilities if you so wish. there are plenty of official and 3rd party expansion modules for it.


@Wintermute_BBS Yeah I also don't know that a lot of people know just how deep the CP/M ecosystem was back in the day. I never had a CP/M machine, but I read a *LOT* about them, including Jerry Pournelle's CP/M boxes - named Zeke and I can't rremember what the other was :) in I think Byte or Doctor Dobbs Journal :)

@feoh same with me, but I learned quickly and am now quite familiar with CP/M. Setting up #rc2014bbs last year sure helped a lot since I had to venture through a mix of C coding and Z80 assembly to get it up running. I really learned so much in the process! #rc2014

@feoh @Wintermute_BBS
I read that stuff. I like to blame microsoft for using the backslash when forward slash was already the standard but I've been told that it was cp/m's fault and microsoft inherited it from them.

Still, no excuse.

@hairylarry Being angry at MSFT in 2022 for decisions they made in 1980 just makes me chortle :)

Sure, I'd have liked it if everyone embraced The One True filesystem / directory structure and The One True POSIX API but, you know, like, life happens and I can't personally be bothered to sweat that level of detail *40 years later* :)

@feoh @hairylarry

TBH for those of us who grew up outside USA (and/or maybe are slightly younger?) even seeing a CP/M machine was rare, you often only got to use machines with hard drives (or even floppies!) at high school, and there were *multiple* different file system standards (Acorn used a dot as a separator for directories, files didn't have any extension).

BBC Basic was very powerful (and the built in assembler was a bonus)

@vfrmedia @hairylarry Your point about Acorn and separators is an excellent one. Lots of people like to blame MSFT for breaking EVERYTHING because they didn't conform to UNIX standards, but in reality this just doesn't make a lot of sense.

@feoh @vfrmedia

I just like to blame Microsoft for being horse's asses and you know what? It's still true today.

Sign in to participate in the conversation

the mastodon instance at is retired

see the end-of-life plan for details: