It was thus said that the Great Liam Proven once stated:
On 29 April 2016 at 21:06, Sean Conner <spc at
conman.org> wrote:
It was thus said that the Great Liam Proven once
stated:
I read that and it doesn't really seem that
CAOS would have been much
better than what actually came out. Okay, the potentially better resource
tracking would be nice, but that's about it really.
The story of ARX, the unfinished Acorn OS in Modula-2 for the
then-prototype Archimedes, is similar.
No, it probably wouldn't have been all that radical.
I wonder how much of Amiga OS' famed performance, compactness, etc.
was a direct result of its adaptation to the MMU-less 68000, and thus
could never have been implemented in a way that could have been made
more robust on later chips such as the 68030?
Part of that was the MMU-less 68000. It certainly made message passing
cheap (since you could just send a pointer and avoid copying the message)
but QNX shows that even with copying, you can still have a fast operating
system [1]. I think what made the Amiga so fast (even with a 7.1MHz CPU)
was the specialized hardware. You pretty much used the MC68000 to script
the hardware.
I spent some
hours on the Urbit site. Between the obscure writing,
entirely new jargon and the "we're going to change the world" attitude,
it very much feels like the Xanadu Project.
I am not sure I'm the person to try to summarise it.
I've nicked my own effort from my tech blog:
I've not tried Urbit. (Yet.)
But my impression is this:
It's not obfuscatory for the hell of it. It is, yes, but for a valid
reason: that he doesn't want to waste time explaining or supporting
it. It's hard because you need to be v v bright to fathom it;
obscurity is a user filter.
Red flag #1.
He claims NOT to be a Lisp type, not to have known
anything much about
the language or LispMs, & to have re-invented some of the underlying
ideas independently. I'm not sure I believe this.
My view of it from a technical perspective is this. (This may sound
over-dramatic.)
We are so mired in the C world that modern CPUs are essentially C
machines. The conceptual model of C, of essentially all compilers, OSes,
imperative languages, &c. is a flawed one -- it is too simple an
abstraction. Q.v.
http://www.loper-os.org/?p=55
Ah yes, Stanislav. Yet anohther person who goes on and on about how bad
things are and makes oblique references to a better way without ever going
into detail and expecting everyone to read his mind (yes, I don't have a
high opinion of him either).
And you do realize that Stanislav does not think highly of Urbit (he
considers Yarvin as being deluded [2]).
Instead of bytes & blocks of them, the basic unit
is the list.
Operations are defined in terms of lists, not bytes. You define a few
very simple operations & that's all you need.
Nice in theory. Glacial performance in practice.
The way LispMs worked, AIUI, is that the machine
language wasn't Lisp,
it was something far simpler, but designed to map onto Lisp concepts.
I have been told that modern CPU design & optimisations & so on map
really poorly onto this set of primitives. That LispM CPUs were stack
machines, but modern processors are register machines. I am not
competent to judge the truth of this.
The Lisp machines had tagged memory to help with the garbage collection
and avoid wasting tons of memory. Yeah, it also had CPU instructions like
CAR and CDR (even the IBM 704 had those [4]). Even the VAX nad QUEUE
instructions to add and remove items from a linked list. I think it's
really the tagged memory that made the Lisp machines special.
If Yarvin's claims are to be believed, he has done
2 intertwined things:
[1] Experimentally or theoretically worked out something akin to these
primitives.
[2] Found or worked out a way to map them onto modern CPUs.
List comprehension I believe.
This is his "machine code". Something that
is not directly connected
or associated with modern CPUs' machine languages. He has built
something OTHER but defined his own odd language to describe it &
implement it. He has DELIBERATELY made it unlike anything else so you
don't bring across preconceptions & mental impurities. You need to
start over.
Eh. I see that, and raise you a purely functional (as in---pure
functions, no data) implementation of FizzBuzz:
https://codon.com/programming-with-nothing
But, as far as I can judge, the design is sane, clean,
& I am taking
it that he has reasons for the weirdness. I don't think it's
gratuitous.
We'll have to agree to disagree on this point. I think he's being
intentionally obtuse to appear profound.
So what on a LispM was the machine language, in Urbit,
is Nock. It's a
whole new machine language layer, placed on top of an existing OS
stack, so I'm not surprised if it's horrendously inefficient.
Compare with Ternac, a trinary computer implemented as a simulation on
a binary machine. It's that big a change.
https://en.wikipedia.org/wiki/Ternac
Then, on top of this layer, he's built a new type of OS. This seems to
have conceptual & architectural analogies with LispM OSes such as
Genera. Only Yarvin claims not to be a Lisper, so he's re-invented
that wheel. That is Hoon.
But he has an Agenda.
Popehat explained it well here:
https://popehat.com/2013/12/06/nock-hoon-etc-for-non-vulcans-why-urbit-matt…
Yeah, I read that. Urbit is a functional underpinning. Of course we need
to burn the disc packs.
I would be interested in an effort to layer a
bare-metal-up LispM-type
layer on top of x86, ARM, &c. But Yarvin isn't here for the sheer
techno-wanking. Oh no. He wants to reinvent the world, via the medium
of encryption, digital currencies, &c. So he has a whole other layer
on top of Urbit, which is the REASON for Urbit -- a secure, P2P,
encrypted, next-gen computer system which happens to run on existing
machines & over the existing Internet, because that's the available
infrastructure, & whereas it's a horrid mess, it's what is there. You
can't ignore it, you can't achieve these grandiose goals within it,
so, you just layer your new stuff over the top.
So does Stanislav. And so did Far? Rideau with TUNES.
But at some point, the electrons need to meet the silicon or else it's
just talk. Lots and lots of talk. Obsfucated talk at that.
-spc
[1] In the mid-90s I knew the owners of a local software company that
sold commerical X servers. Their fastest server was under QNX,
which used the native QNX message passing (copy data between two
processes).
[2] Yes, I'm using one crank [3] to support my position on another
crank. That might make me a crank as well. I don't know.
[3] Don't get me wrong---I love cranks. I find them facinating. I just
don't necessarily believe in what they're saying.
[4] It's a joke. Look it up.