3 ms·
"How can you directly compare a programming language to multitasking operating systems with desktop enviroments?" People who grew up in the 8-bit era might rem
by cturner 10y ago
"How can you directly compare a programming language to multitasking operating systems with desktop enviroments?"
People who grew up in the 8-bit era might remember the reverse of this mental shift when they first encountered the IBM PC, and were told they needed an operating system for it. Why is the OS an independent idea from the hardware I bought? Why do I need it? Why isn't everything I need built into the computer itself?
"Maybe I'm missing something?"
It flowed for me, I'll try to explain my reaction.
What we think of as an operating system or a language are specialisations of a common idea: they are mechanism for driving a computer.
Mainstream development practice is all about facading existing technology. You write a web gui that comes from a web server that is set up with a DSL. The webserver calls a perl script that shells out and calls perl libraries and makes system calls. And so on. And then we build complex tools to herd all of the complexity: nixos and node.js and IDEs and LLVM and systemd.
We have created human language to refer to these abstractions: operating system, programming language, compiler, package manager, IDE.
Forth is different. It's a technique for solving problems by eliminating cruft (rather than facading it). It doesn't have a whole lot of respect for facader language ideas.
There are similar projects working in the same spirit, but which have let the bedrock sit further out from the hardware.
There's a crowd who want to bedrock on an array language shell, and they build it in a bizarre dialect of C with a means-to-an-end attitude: that's the operating system project the kparc.com team are working on.
There's a crowd who want to bedrock on an easily-networked file-system+bitmap-display abstraction over the hardware, and who are fond of algol-like programming languages: that's plan 9.
There's a crowd who want to bedrock on linux's excellent suite of hardware drivers: that's suckless.org.
A dev who only lives and breathes IntelliJ might mark a vi-using suckless user as a minimalism extremist, be unable to understand their motive. Whereas a kparc developer will flag the same suckless fan a pragmatist but recognise the shared purpose.
The culture war over systemd is an example of the tension between facaders and minimalists. As the facade-the-world attitude has ramped up, Unix has gradually become less and less effective as a host system. If you accept the facader worldview, systemd is the appropriate response. But systemd alienated the minimalists. Before systemd, linux was effective for people who wanted an expedient shell into their computer with adequate hardware and browser support. Systemd added complexity to their bedrock.
- robochat42 10y agoThanks, this makes the article a bit clearer to me. It's about seeing the operating system as bloat and trying to remove abstractions. Like when I see an editor written in Electron, part of me wonders how many layers of abstraction are present. Also now I've read a bit more, I can also see how Forth systems can be a bit like operating systems since they normally allow multitasking. So my initial comment was a bit rash (using a different account because I can't remember my password and not at home).