Picking up #basic again really is like riding a bike.
It's not the prettiest #programming 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 #retro. I do think there are things we could learn from it in modern designs.
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 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 :)
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 :)
@lopta Yeah dealing with the line editor and line numbers is definitely a throwback :) And there's no easy way to renumber either!
@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 :)
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 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!
@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 :)
@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* :)
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)
the mastodon instance at cybre.space is retired
see the end-of-life plan for details: https://cybre.space/~chr/cybre-space-eol