@p@fsebugoutzone.org @m0xee@social.librem.one you reminded me to do a btrfs snapshot
@p@fsebugoutzone.org @realman543@annihilation.social @m0xee@social.librem.one every day I yearn for the latter :darkness:
@p@fsebugoutzone.org @m0xee@social.librem.one @realman543@annihilation.social is unix, just moreso. You know I'm not a fan of that
@iska
What did you expect, giant distributed microkernel-based LISP machine running exclusively on NUMA-enabled Itanium cores? 🫠
@p
> Forth environment on a Z-80
That shit I came up with was somewhat hard to challenge, but you did! Respect! 😂
I'm just poking @iska for fun — pretty sure that it would be something more practical (but still unusable by the standards of a normal human being)
@realman543
@p
Strange that you don't own a PowerMac G5 rig then — having Forth right in OpenFirmare sounds cool if you're into that thing. To be honest, to me it's in the same category LISP is in though — something fun, but impractical 😅
As for Z80: https://oldbytes.space/@millihertz/112620912045955111
To me it doesn't even bear any nostalgic value: I didn't own it when everyone did.
@p
> I have used both languages for actual work.
Sure, both are viable, but despite not being new it's not like they are becoming household names… ever at this point, they are now "meme" languages, sure choice when you need a marginal language in a joke — that's what I mean by placing them in the same category, despite them being different.
@realman543 @iska
@p
Oh, for this stuff — sure! I'm currently reading a book, that touches systems programming in examples, and it gets explained how CHIP-8 works, how instructions are decoded, how arithmetics works, how calls work, the author goes on to explain how memory management works, what endian-ness is (for those who don't know it).
Weird shit is — it's a Rust book and all examples feel… AWKWARD to say the least, everything is wrapped in unsafe {}, system calls are used directly, etc 🤪
@realman543 @iska
@p
I mean it's great in a way that it shows what's happening under the hood instead of "just use this crate", how smart pointers and reference counters save your ass, but why they might make things noticeably slower, but it feels weird, when every example shows how the language is against you doing things like that.
Knuth didn't come up with MIX to explain algorithms for nothing after all 😆
@realman543 @iska
@p
I think it just demonstrates the anti-patterns like: this thing here is thread-unsafe — but if you don't care, you can still use it. It does a decent job explaining why there are a couple of dozen types for string, why there are boxes, arenas, rc, arc and their friends, in addition to regular pointers which you can still use, but you'd better not, if you can live with borrowing, lifetimes and all that.
@realman543 @iska
@p
It's exactly the kind of book on Rust I want, but the one who intended to use it for web microservices and picked up the first book in the nearest store, probably indeed goes insane reading all this 😂
@realman543 @iska
@0
Aren't both Forth and LISP /g/'s darlings? At least I think this is where half the SICP memes come from 🤔
And when I say "meme-something" it doesn't inherently mean that it's bad — it's just that people use it more often in conversation than in practice. (Have anyone using "Freudian slip" ever read a page of Freud?)
In a lot of cases it means that it's something impractical — but again, not necessarily.
> they are now "meme" languages,
Well, you say this, but I wrote an ad-hoc assembler in a Forth a couple of years ago because it was faster to fire up a Forth and look at a chart and emit the instructions I needed than to track down an assembler that would handle the weird shit I was doing and also run on my machine and then get it to compile. 30 minutes: program's done, blob's produced, anyone else would still be stumbling through search results and reading the README in someone's Github repo to see if it even targets the right chip. It's wonderfully expressive, the code comes out compact and readable, and if you're doing a "real" Forth on a small system, you can save a lot of memory: 40 or 50 bytes of opcodes turns into three two-byte addresses.
All the way on the opposite side from bitbanging on tiny machines, I have embedded stack-based languages in applications to use as DSLs for scripting. One of these was just internally facing, but it cut the length of most of the endpoints to two lines, one to extract/escape the user-supplied parameters and one to invoke the little runtime with the generated program and get the results out.
It's not even rocket-surgery stuff, it's easy stuff to do if you've done it once, but if you think it's a meme, you won't try it the first time and it's a tool you'll never have.
Same goes for Lisp; I've used it less often but it's a nice language. (Lisp-1s like Scheme, anyway; I don't like the separate function namespace stuff CL does.) I wouldn't wanna use Lisp as an entire environment if I could use Forth, but it'd be serviceable.
...Not on Itanium.
these_things_are_real_i_do_not_make_them_up.png