There are two forces (in the Christopher Alexander sense) acting on a programming language:

1. The owner wants to bootstrap as rapidly as possible up from raw machine language to useful domain abstractions, while also having total control over the machine.

2.The owner also wants to prevent attackers from doing the reverse thing: escaping from domain abstractions down to raw machine language and then bootstrapping up to total control.

But a machine doesn't know an owner from an attacker.

Nice thread, @natecull, but is this really about programming languages or more precisely about execution environment (either vìrtual machines or operating systems)?

@Shamar

I don't see a hard boundary between those concepts.

A programming language defines an execution environment, and for sufficiently complete programming languages (Lisp, Forth, Smalltalk) the language execution environment also just is the operating system.

Even the Unix OS is heavily based on the C runtime and language. But the systems above bind these abstractions even closer together.

So the answer to your question is "Yes".

@Shamar

I am kind of surprised for instance that Microsoft never built a ".NET OS", because for a while it looked like that was where that language runtime stack was going. But I guess the Windows legacy has always been the huge pile of preexisting iX86 machine code EXE files compiled to Win32 APIs and the OS needed to keep running those.

But if we were ever to make a clean break from both iX86 and Linux/Windows..

Well maybe we'll end up with a WASM OS.

But I'd like something simpler.

Follow

@natecull

A WASM OS sounds like a very dystopic nightmare.

's is another attempt into this direction.

I think the biggest advantage of these systems (far ahead of their times) is that they assume no difference between user and programmer.

Also (afaik) they were all single-user systems and I'm unable to say if the two aspects are related or this characteristic is just derived by the hardware/culture of the time.

On the other hand, I would not say that operating systems belongs to the same family, despite being mostly written in C.

It looks like they actually assume/impose a strong separation between user and programmer even just in their perception of the system.

Maybe the multi-user approach is just a further application of this separation.

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.