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 *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.

@DavittoKun @OS1337 @Raspberry_Pi Meanwhile the current official Hebrew bible is 306,757 words and people spend their entire lives studying and commenting on it, so a proper SECURITY overview of a codebase, understanding ALL the implications...

Keeping the base OS as small and simple as possible serves a purpose if humans need to comprehend it.

Replacing the base OS with a much bigger one during system bootstrap defeats the purpose of scrutinizing that base, so it needs to be load-bearing.

@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.