People underestimate how important BASIC was back in the 1980s. It was the lingua franca of the 8-bit machines. Magazines had dozens of pages of BASIC listings in the back of each issue, programs you could type in yourself. Half the articles were descriptions of one of those programs. And books titled '50 BASIC Games" which you'd type in (and debug the typos of) yourself.

https://mastodon.me.uk/@coprolite9000/111790433154125033

Javascript COULD have become this for a new generation. Why it didn't is its own story...

Coprolite9000 (@coprolite9000@mastodon.me.uk)

@CatherineFlick @bbcmicrobot PC Gamer, too! https://www.pcgamer.com/mastodon-users-are-crowd-running-programs-on-a-bbc-micro-emulator-in-2024-and-the-results-look-as-spectacular-as-they-did-in-81/

mastodon.me.uk
@landley I tried to teach JS for a few years at a summer program for high school girls. But it was frustrating because it's hard to do anything visual in JS without understanding HTML and the DOM. So I ended up writing a lot of wrapper functions, which meant that I was teaching my wrapper functions more than I was teaching JS programming.
@akkana Oddly, the most effective teacher of this stuff seems to have been the "neopets" website. I have no idea why, but every "women in web design" podcast or similar I've listented to, the interviewee reminisces with the interviewer about both getting their start on neopets...
@landley
One of thecourses I taught at St Eds was an HTML+Javascript course - we had a lot of fun with JS but I don't think any of them ever used it again...
@landley
That's one reason I picked up an Agon Light 2. I like having an 8 bit computer around that boots up to BBC BASIC...
@SweetAIBelle When I was 11, the commodore 64 said "38911 basic bytes free" at the top each time you turned it on. (Instant on back then, too. And it took me a while to understand the concept of computer viruses because the OS was in ROM, you could always just turn it off and back on.)

@landley
Yep! I didn't have a c64, but I did have a TRS-80/Tandy Color Computer 2/3 with 16k->128k with a tape player hooked up to it.

I remember getting this book, along with the tape. Lots of fun.

("You have died a horrible death. I hope you had fun though!" is engraved in my memory...)

https://colorcomputerarchive.com/repo/Documents/Magazines/Rainbow%20Books/Rainbow%20Book%20of%20Adventures,%20The%20(Searchable%20image).pdf

The Agon's this neat little combination of retro & modern, having a eZ80 processor, but connected to an ESP32. Instant on with basic, I can get it to run Infocom games, and it can be convinced to do CP/M (though I haven't gone that route yet)...

@landley
Oh, btw, you can find some of those books of basic programs online these days...

http://vintage-basic.net/games.html

https://www.atariarchives.org/

Vintage BASIC - Games

@landley @SweetAIBelle I kinda want that immediacy and "clean slate reboot" option because I never had like a system with a "Boot ROM", but the Idea is growing on me...

https://www.youtube.com/watch?v=JIEPqD4luG8

Still the world's fastest booting PC in 2021?

YouTube

@landley *nodds in agreement*

I guess #Python tries to be the modern #BASIC and the #RaspberryPi #Pi400 tries to be the modern #ZXspectrum but even then the comparison falls flat because outside of #Linux distros, most OSes don't come with a preinstalled Python interpreter - espechally not #macOS & #Windows, so we don't get that cohesion.

#JavaScript and #WebDevelopment - espechally on the #FrontEnd - kinda went overly complex, thus #JS failed to become a mass-adopted languague outside of bloated "#WebApps" that literally ship a whole #Chromium (like #nwjs / https://nwjs.io ) and turn something that should've been measured in Kilobytes if maybe a few Megabytes into hundreds of Megabytes if not Gigabytes of #bloat to be shoved onto a device…

And whilst one can shim that down significantly by relying on #WebView as #API...
https://f-droid.org/packages/de.monocles.browser/

...This comes with the can of worms that is #Android #Updates and #Security Patches for devices...
https://docs.monocles.eu/browser.app/#security_issues

...which have an absurdly short lifecycle (usually less than 2 years, #Fairphone being one of the few exception!) given flagship smartphones being solid in the 4-digit territory, when equally or cheaper priced business laptops get 3 - 5+ support...

The abundance of computing resources like bandwith, storage, RAM and CPU sadly have resulted in increased #Enshittification, where things feel slower and less responsive than previous versions in spite of sometimes exponentially more resources at hand.

In many cases a lot if developments feel like regressions in terms of UI, UX and overall efficiency, and we see the digital equivalent of #SuperUselessVehicles being made...

That's not the fault of JS - a language isn't a sentient being nor being responsible for even existing - but ut's like introducing alcohol to someone who had never drank anything by giving them a double shot of Absynthé: It ruins it for them...

NW.js

nwjs

@OS1337 Python sheds its user base every few years like a snake shedding its skin. (Python 3.6 is too old to build QEMU.)

The advantage of JavaScript was it's built into every web browser, and web browsers were everyone's window onto the world back before phone apps.

8-bit programming was like haiku, every letter counts and the constraints were where the creativity arose from.

We still teach kids the alphabet, then words, then sentences, but we don't teach 8-bit programming, then 16/32/64.

@OS1337 I don't know what the answer looks like here, but ontogeny recapitulating phylogeny is basic pedagogy, and if high school is going to be teaching out of a 20-year-old textbook then 5 year old language runtimes being unusable in common real world deployment disqualifies that language from having _any_ educational purpose.

@landley Sadly we don't teach kids anything in that matter (at least in #Germany from my observation)...

I literally met a highschool graduate in 2019 starting and apprenticeship in an administration / accounting role and they literally confessed to me that they didn't know how to use a Computer at all.

And I'm not talking "How to use Linux/macOS/Windows?" but like "How to turn it on/off?" "How to use a Keyboard and Mouse?" and "How to login?"...

I wounder how this person even got their university eligibility without having ever touched any computer at all.

And that's the state of #Education: People get groomed into being #Users and #TechIlliterates!

@OS1337 College taught me Pascal instead of C. When I was teaching community college they taught Java instead of C. I'm told if you really insist, these days they'll teach you C++ instead of C.

C++ developers foam at the mouth when you call C a portable assembly language, because it's an advantage of C that C++ will never have. They insist it can't possibly be so, and use the optimizer to introduce undefined behavior to retroactively justify their position.

C++ keeps trying to add simplicity.

@landley I mean, C is being used instead if C++ in many cases because predictability is often more useful than object orientation.

But to go back at "universal languague to get shit done with" I think #bash is the closest to a modern-day #BASIC, with #fish basically trying to take that idea and make it more user-friendly at the cost of simplicity under the hood.

But #C is the standard I got confronted with at University, because at the code level it is portable and it doesn't care if you target i386, arm64 or 128bit RISC-V:
It's the compiler's task to turn a hello world into a native executeable for those...

@OS1337 @landley Hi! C is neat, of course. It is the first programming language I learned!

But... How are you going to manage exceptions? It's a killer feature from C++ !!

@DavittoKun @OS1337 I check return codes and return, with the occasional longjmp().
@landley @OS1337 But...what if the code breaks badly? You can't check return codes if there is a deadlock of some kind.
Tutorial: Building the Simplest Possible Linux System - Rob Landley, se-instruments.com

YouTube
@OS1337 @landley That's a cheap trick :-)

@DavittoKun @landley so what?

#Compression is also a cheap trick to make a #toybox + #musl / #Linux fit onto a 1440kB 3,5" FDD...

IT WORKS!

@OS1337 @landley Nope, that's really cool :-)

@DavittoKun @landley It's certainly not yet where I want it to be, but it's going in the right direction...

Progress is slow since it's a 2 person team doing it on free time with no budget and OFC it's still crammed space...

But feedback and contributions are welcome!

https://github.com/OS-1337/OS1337...

GitHub - OS-1337/OS1337: OS/1337 Project

OS/1337 Project . Contribute to OS-1337/OS1337 development by creating an account on GitHub.

GitHub
@OS1337 @landley It is ok as long as you keep on learning. I guess that's the purpose of the project after all 😏

@DavittoKun @landley One of many goals...

The core goal is to build a clean slate of a minimalist Linux that can then be used as basis for a lot of projects.

Because whilst things could be done with a @Raspberry_Pi & #RaspberryPiOS, having to ship over a quarter gigabyte of a minimalist Debian feels excessive.

Also it's about having some good replacement for #tmsrtbt that isn't just a #TechDemo like #Floppinux, which @w84death did and evidenced that it's perfectly possible to do so...

@OS1337 @landley @Raspberry_Pi@raspberrypi.social Yes, the OS in RPi is too heavy. But, you know... Not even 1TB MicroSD cards are that expensive these days (RetroPIE...)

However, it would serve the community right by getting a clean, optimized system.

@DavittoKun @landley Granted, @Raspberry_Pi 's goals are different than mine and those goals are valid too.

You can't have #TechLiteracy by the masses if they never get #tech they can tinker and learn with...
https://www.youtube.com/watch?v=C1Dpz35HLOI

#RaspberryPi basically dominate the #ARM & #ARM64-based SBC market because every competitior just solders some silicon on a board and thows it on the wall with neither good #Documentation nor #Support, letting customers to "fuck around and find out" instead, which is exciting for a few but a complete disregard to the value of time of the buyers for everyone who needs to make it go brrr.

There's a reason the #BananaPi0M2 was never scalped, because Software makes OSes and OSes make Hardware!
https://www.youtube.com/watch?v=51OMXTElStM

Whereas the #Pi0 / #Pi0W & #Pi0W2 - whilst being proprietary in nature, are easy to integrate and develop for with free, excellent documentation and a vendor that actually gives a shit!

Thus it would be stupid *NOT* to target their boards woth OS/1337!
https://github.com/OS-1337/OS1337/blob/main/docu/ideas/architectures.tsv

Sorry if I seem a bit nasty-worded...

#OS1337 #Linux #Debelopment

This keyboard is a $100 computer!!! - Raspberry Pi 400

YouTube

@DavittoKun That's why I want to do a #toybox + #musl / #Linux distro.

Why reinvent the cabin scooter when @landley, @torvalds and contributors already offer you basically the whole range of parts to build the OS equivalent of a "#PersonalLightVehicle"...

Espechally since I got neither the skills nor time to reinvent wheels that ain't square or drive faster than 20km/h... ^^
https://www.youtube.com/watch?v=hKyNqc1p2iw (not me btw!)

Insane Square Cycling

YouTube

@OS1337 @landley @Raspberry_Pi@raspberrypi.social You post as if you were writing a college paper :-))

I totally agree on the ultimate goal of the project. It would make for a great software engineering final project, or is it?

Keep it going! 🙂

@DavittoKun @landley Sadly I'm a universtiy dropout, so no, it's not a thesis or something.

But feel free to work on it if it helps your (academic) carreer or fany a look for the lulz.

Try that floppy image in a VM (but be careful, it has some sharp edges and stuff)...

@DavittoKun @OS1337 @Raspberry_Pi Where do you get reliable 1TB cards? Biggest I've seen around here is 256G, and I'm reluctant to order random chinese product du jour these days because so many of them are scams now...

(I miss akihabara...)

@DavittoKun @OS1337 @Raspberry_Pi P.S. My motivation here is severalfold.

I also want to make Android self-hosting: https://landley.net/toybox/

And countering "trusting trust" with a base system small/simple enough to binary audit, then build everything under: http://lists.landley.net/pipermail/toybox-landley.net/2020-July/011898.html

But more than that, I want something students can understand. Read your whole _real_ OS cover-to-cover, no black boxes, then run it in production by adding but not replacing stuff.

What is toybox?

@DavittoKun @OS1337 @Raspberry_Pi
My recent post about automation (https://mstdn.jp/@landley/111792748801791965) linked to a good 1983 paper on the dangers of losing expertise over time.

If you can't reproduce something from scratch under laboratory conditions, what you're doing isn't science. (Whole lot of computer alchemy going on.)

The DEC Altair booting from front panel switches and a paper tape reader was the last machine that could be MANUALLY booted. Everything since inherited a cross-compiled binary seed.

Rob Landley (@landley@mstdn.jp)

The problem with automation is that the skill to manually perform the task atrophies, and if the automation fails the person it falls back to is at _best_ out of practice, or asleep, or got laid off 6 months ago, or the last person who understood this retired 30 years ago... https://mastodon.social/@RuthMalan/111791403916470011 (Premature automation is a form of premature optimization. Maintaining a pool of expertise is important. "Right to repair" isn't just a cost issue.)

mstdn.jp

@DavittoKun @OS1337 @Raspberry_Pi No human being can ever read through a terabyte. We don't live long enough.

Assuming you could read 1000 words/min (4x average) and the average "word" was 10 bytes (it's 4.7), that's 10k of input text per minute. A terabyte's 1<<40 bytes, /10k = 109951162 minutes, 1832519 hours, 76354 days, which is 209 years round the clock.

Assuming it's well-formatted easily comprehensible ascii text. To speed-read it once at a superhuman rate, not stopping to think/sleep.

@landley @DavittoKun *nodds in agreement*

The same reasons are why I want OS/1337 to be a better minimalist OS:
Because if I ever want the #PocketCrypto and/or #Cryptofon to succeed, I've to convince people that wear a tinfoil-lined hazmat suit and have 25X security spechalists on speeddial that make Schneier and Snowden look like Skiddies to trust that whole thing.

And like NORAD it basically boils down to "personell hours are expensive" and "the less code there is to audit the easier it is to do so"...

Having a clean slate even if it's just a piece of sheetmetal on top of Euro-Pallets is sufficient as table.
I don't need fancy handcarved on a spindle feet!

@landley @DavittoKun @Raspberry_Pi There are legit ones from #SanDisk and #Lexar and any good (online) store that gives a damn about delivering good merchandise.

Obviously, Aperzon, ShitExpress and eNay are choking on cheap counterfeilts to the point that it ruins them as stores...
https://www.youtube.com/watch?v=y83BS_mK9GE

Not to mention other stores actually have customer support and are often cheaper...

Amazon Sells Dangerous Electrical Crimps

YouTube

@DavittoKun @landley Also minimalism and simplicity and reproduceability as well as auditability are IMHO long overdue qualities and should be the norm for critical systems.
https://www.youtube.com/watch?v=MkJkyMuBm3g&t=11m55s

Cuz I don't feel comfortable seeing #Windows of all things being used anywhere near #CriticalInfrastructure, espechally given how stuff like #Conti and #NotPetya can not just cripple entire nations but literally be weaponized to kill people (You don't want to see #MedicalIT, it's a nightmare that makes you want to ban everything more complex than a light switch!) - and that alone should be sufficient reason.

For anything I'd want to get done with it later it's better to have a something that can be easily reproduced and maintained than going the lazy route, espechally if one ever intents to win customers/users with transparency and not some "pay-to-loose" type of certification badge that doesn't say anything about the actual security (like those done by the @bsi) but only about how deep the pockets of the one trying to sell it to others are.

If I don't comply with fundamentals like Kerckhoff's Principle why should you even trust me on other fundamentals like how the weather is?
https://en.wikipedia.org/wiki/Kerckhoffs%27s_principle

I mean, don't trust me at all, these other projects are stubs as of now for a reason:
https://github.com/KBtechnologies/PocketCrypto
https://github.com/KBtechnologies/Cryptofon

But you'd likely agree that "#TrustMeBro" died with the inception of #MINERVA / #RUBIKON & #PRISM / #BULLRUN...
https://en.wikipedia.org/wiki/Crypto_AG

Toybox vs BusyBox - Rob Landley, hobbyist

YouTube
@DavittoKun @OS1337 Using a sharpened piece of metal to cut food is also a cheap trick. The egyptians did back in the pyramid building days. Can't possibly still be relevant.

@landley @OS1337 Well, you know... Linux is the most successful kernel in the world, and it is being developed in C and assembler.

It's like making a game in LISP. It is likely possible — but not convenient.

@DavittoKun @landley Depends on your use-case...

Nite that "Game" has a very low bar and I'm shure some fuzzy-bearded dude did make a ZORK clone in LISP...

@OS1337 @landley
C plus, say, raylib could get you a fair way.
https://www.raylib.com/

The olcPixelGameEngine header-only library's also good for a quick library to do stuff in...
https://github.com/OneLoneCoder/olcPixelGameEngine

raylib

raylib is a simple and easy-to-use library to enjoy videogames programming.

raylib
@OS1337 @landley I don't think Python is trying to be the modern BASIC. It's trying to be (and is) a useful language for a wide variety of situations, with a slight emphasis on ease of use over performance when necessary, and to some extent those goals probably align with the goals of BASIC back in the day which is why they seem somewhat similar, but I doubt that it goes much further than that.

@diazona @landley OFC #Python does that stuff exceptionally well and can be used as a tool to get things done - like doing pull backups from multiple machines over SSH...

Not that it's impossible to implement that in #bash or #fish, but as a simple "multitool" it works great, as @fuchsiii showed me several times...

Granted, you don't get all the fancy bells and whistles from like a Java application or C, but Python does wjat it's designed for quite good...

I only tend to use bash as sysadmin because installing a new shell/command interpreter is like a big no-go in critical infrastructure and being able to "write once, runs on all machines I'e to care" is a big bonus compared to fish or Python.

@landley I think the closest thing to BASIC we have right now is Lua, mostly because it's the scripting language of most fantasy consoles, and it irritates me just like whenever I have to deal with BASIC
@landley I really wish Python had found a killer app to make it the beginner's programming language of choice, but the whole reason why BASIC was so big back then (a dearth of ready-made software, people with the principles that computing should be something that the masses do, rather than consume, The lack of other viable options for a beginner's language...) is kinda why we'll never get another one, even though we have the resources and techniques to make something that works now.

@polyote They had plenty of killer apps. They also had developers writing blog posts analogizing the python 3.0 transition to the kubler Ross stages of grief.

https://snarky.ca/the-stages-of-the-python-3-transition/

Which is pretty much how the Python 1.0->2.0 transition went back around 2002, except their promises back then were that they'd never have to do it again.

Meanwhile I haven't been able to build QEMU from source since 2022 because my debian buster from 2019 (still supported through June 30) only has python 3.6.

Where are we in the Python 3 transition?

The Kübler-Ross model [https://en.wikipedia.org/wiki/K%C3%BCbler-Ross_model] outlines the stages that one goes through in dealing with death: 1. Denial 2. Anger 3. Bargaining 4. Depression 5. Acceptance This is sometimes referred to as the five stages of grief.Some have jokingly called them the

Tall, Snarky Canadian
@landley The nice thing about being a hobbyist who tries to program for fun is that I don't have any legacy code to deal with
@landley I'm currently trying to find my sea legs again by going through an old 'learn python' book for kids that was written for 2.something, only I'm doing everything in python 3.something, and oh god python's so much better than lua

@polyote s/better/bigger/

Their standard bindings have a very large amount included by default.

Imagine libc.so also included libx11 and zlib and openssl and libgtk and mysql and audacity and opengl and ncurses and a dozen more, all in a single library. You can't select a subset of that, the whole thing is defined as being there always and everywhere.

@landley And python's syntax doesn't annoy me with weird little differences just for the sake of being different.

Also, arrays starting at 0 is really nice for game math

@polyote @landley does #Python at least do #tabs properly or do they still insist on using #spaces?
https://www.youtube.com/watch?v=V7PLxL8jIl8
Silicon Valley - Tabs vs Spaces War

YouTube
@OS1337 @polyote last I checked they would handle either but warned about mixing them because indentation level determines grouping and the number of spaces a tab expands into is only loosely defined.

@landley @polyote so I guess I can finally use Tabs... Yay!

Now #YAML needs to follow suit or just die out...

@polyote @landley #Lua is definitely an upgrade in some cases tho.

Like #neovim using it instead of #VimScript...
https://www.youtube.com/watch?v=c4OyfL5o7DU

Granted I use #nano and have to get used to #kilo for #OS1337 but still...

Neovim in 100 Seconds

Neovim is a fork of the keyboard-based text editor Vim. It is focused on extensibility and integrates the Lua programming language for easier scripting. #pro...

YouTube

@polyote If only it had an English development list instead of Portuguese, didn't make you buy a paper book to learn the language basics, had standard posix bindings as part of the base language...

I bought both books and tried designing a busybox re-implementation in Lua back around 2009. I stopped enumerating missing bindings at seven extra packages I had to install.

If they assume you're going to extend it in C to ever use it for anything, why not just use C?

@landley Yeah, Lua's seriously irritating, both at your level, and at the hobbyist/dabbler in programming level as well. I recently discovered Pyxel which uses Python, so I'm probably gonna play around with that as I get back into fantasy consoles

@polyote Which is a pity because Lua was quite possibly the most elegant base language I'd ever seen.

I vaguely recall they managed to make returning null instead of throwing exceptions work, had a single container type work as both an array and a dictionary, and various other really clever things like that.

They just... didn't give it bindings. (Imagine C without libc.)

Java had applet and application context (2 standard sets of bindings), node.js was an application binding for JavaScript...

@landley @polyote #Lua is the #1 scripting language for #Games for a good reason.

And some games solely survive on the fact that to mod them one only needs to shove in Lua code and assets into a folder and run them.

https://www.youtube.com/watch?v=d8EEzkZ4vzk

Welcome to STALKER! Which GAME and MOD should you Play?

YouTube