If so, are you sure the Urbit folks just didn't happen to discover this simpler/clearer way of doing it? Or do they have some motivation for making it obscure?
If so, are you sure the Urbit folks just didn't happen to discover this simpler/clearer way of doing it? Or do they have some motivation for making it obscure?
Is there any consensus for this? Or are you being sarcastic? I don't know anything about these things so I googled it:
https://www.google.com/search?client=firefox-b-1-d&q=the+num...
The top box says
>> The No. 1 Cause of IT Failure: Complexity. ... According to software architect Roger Sessions, the primary cause of software project failures is complexity. Complexity can create delays, cost overruns and systems that don't meet business needs, according to Sessions, who is chief technology officer at ObjectWatch Inc.Dec 21, 2009
Another question below mentions these points:
Software Management Common Software Failure Causes
Lack of user participation.
Changing requirements.
Unrealistic or unarticulated project goals.
Inaccurate estimates of needed resources.
Badly defined system requirements.
Poor reporting of the project's status.
Lack of resources.
Unmanaged risks.
It doesn't make sense to me why barrier to entry being too low would be a problem. Am I missing something? The one thing that comes to mind is javascript but it isn't really a failure if the metric is user adoption.
If they're not feeling charitable, they might declare you an Eternal-Hasnamuss-Individual and tell you your destiny is to become food for the moon. But at least they won't sue you or send private investigators after you (I think), so that's nice.
At least some of those terms are pretty easy to figure out.
"organ kundabuffer" was a specific organ that excreted some kind of drug (in Gurdjieff's pre-history.)
"being-partkdolg-duty" is the task and operation of remembering oneself.
"the sacred Rascooarno" is death of the physical body.
...and so on.
It appears from https://gnosticteachings.org/books-by-samael-aun-weor/the-el..., too, that: "It is necessary to know that the Kundabuffer Organ is the negative development of the fire." That's something I am certainly glad now to know! It makes the rest of it seem so much simpler.
(Leaving aside sarcasm for a moment, "the negative development of the fire" seems like just the sort of thing a Quaker might describe as a perversion of the Inner Light, or a Catholic might regard as akin to what would become of humans absent the Holy Spirit indwelling. I'm sure someone conversant with the inner mysteries of Gurdjieff's particular flavor of syncretistic guff would consider both of these analogies to be shocking misapprehensions of the true nature of whatever it is supposed to be. But I'd be astonished to find such a person able to usefully explain what it is supposed to be.)
No.
I've read Gurdjieff's "All and Everything" (as much of it as has been published) and thought about it deeply. Even so, I don't think I understand even half of it. The part I do understand makes me think that Gurdjieff was a genius, comparable only to Leonardo da Vinci, with the difference that, where Leonardo explored the external world, Gurdjieff explored the internal world.
FWIW, as far as I can tell the "kundabuffer" was literally an organ that excreted some kind of drug. It deranged our thinking and perception, essentially making us high, so that we wouldn't notice that we were being used to somehow stabilize the orbit of the Moon after some disaster. Eventually the Moon's orbit was stabilized and the organ removed, but it was too late. The effects persisted. No one (of the alien/angels that were doing all this) noticed the problem until one person discovered that earthlings were destroying each other. (War is unknown other than on Earth. The rest of the Universe literally have no idea. Which is why no aliens land on the lawn: they're all totally terrified of us.)
What's the big deal?
The big deal is that you've nicely brought me back to my point.
>Even so, I don't think I understand even half of it. The part I do understand makes me think that Gurdjieff was a genius
By taking something relatively simple, combining it with other nonsense you heard or made up, wrapping it all in deeply nested layers of made up BS and obscurantist terminology, definable only in terms of itself, you too can develop a complex, seemingly consistent "system" that looks to the unwary like a work of profound intellect! And all you have to do next is pitch it with a hot take about something that everyone knows about and relies on (e.g., "the default state of man is sleep"/"the internet is broken"), to which your system is the only solution!
A lesson Curtis Yarvin has learned very well.
> The big deal is that you've nicely brought me back to my point.
I shouldn't have omitted the sarcasm tag on that line.
> By taking ... the only solution!
Yeah, I know. I have to resist the urge to start a religion almost daily. I'm only saved by misanthropy: I couldn't stand to have the bobbies milling around.
But that's not what Gurdjieff did.
> A lesson Curtis Yarvin has learned very well.
My take from the very beginning is that Yarvin is brilliant but mentally ill. I don't mean that in a derogatory way! I feel for the guy. It seemed clear (to me anyway) from his early writings about Urbit that he's a little touched. Over the years he's seemed to get a little better.
Of Gurdjieff's work I'm comfortable saying, in paraphrase of the apocryphal Dr. Johnson, that what is worthwhile is not original, and what is original is not worthwhile. Granted that I haven't studied him deeply - but I haven't done so because, where I have looked at his work, I've found nothing that other schools of enlightenment theory haven't said better both before and after him. Robert Anton Wilson is in my estimation much more worth anyone's time, not least because he doesn't seem nearly so much to deliberately cultivate opacity.
In Yarvin's case, I suppose time has yet to tell. Certainly his opinion of the status quo, with regard to tools ostensibly for communication between people, is one I share. I doubt Urbit is the solution, but as I said, time will tell.
I don't see how that follows.
> Both wrestle with ideas that seem to be too big for them, and both clearly struggle in so doing, or at least in making their big ideas comprehensible to those less inspired.
That's not my view FWIW. Gurdjieff was very clear when he wanted to be and also very obscure when he wanted to be, often at the same time, but always in service of his fundamental goal: Transformation of man.
If you examine the notebooks of Leonardo you don't have to be able to read them nor understand every drawing to realize that you're witnessing the work of a towering genius, a mind beyond the ken of the vast majority of people not just in his own time but even far into the future.
That's what I see in "Beelzebub's Tales". Of course it's obscure and hard to understand (in places): he's trying to construct and communicate a whole world view to future generations that overturns the epistemological foundations of common society. It's gonna be a challenge to "grok".
> Granted that I haven't studied him deeply - but I haven't done so because, where I have looked at his work, I've found nothing that other schools of enlightenment theory haven't said better both before and after him.
I don't know what to tell you. I've also studied him deeply and compared to most "other schools of enlightenment theory" he's like an adult among kindergartners.
> Robert Anton Wilson is in my estimation much more worth anyone's time, not least because he doesn't seem nearly so much to deliberately cultivate opacity.
I love RAW. He is ~#3 in my personal pantheon. But he once wrote a book that, by his own admission, was crammed with jokes that no one ever got.
> In Yarvin's case, I suppose time has yet to tell. Certainly his opinion of the status quo, with regard to tools ostensibly for communication between people, is one I share. I doubt Urbit is the solution, but as I said, time will tell.
Regardless of Urbit, I care about Yarvin and I hope he's a healthy happy person, or at least on his way.
I hear this Gurdjieffite dodge a lot. "He totally meant to do it that way, for reasons you and I can't fathom. It was all part of his brilliant plan, for he has assumed no less of a burden on himself than the total transformation of mankind!" They say that about his numerous scams like painting sparrows yellow and selling them as canaries. "That was just Gurdjieff testing the public, to determine who was truly worthy of receiving his teachings." No, it was a scam.
For God's sakes they say that about his penchant for reckless driving -- which nearly got him killed twice! It's just proof of his Jedi reflexes which he developed through his genius and years of study.
Come on, man! I won't doubt that he was a clever bloke -- as is Yarvin -- but he was a huckster. His stock in trade was getting people to think he was a unique genius with the power to bring about a new age of enlightenment. It's a testament to his intelligence that it worked, but it doesn't legitimize his claims or even put him on equal footing with Da Vinci.
And no, I haven't been hanging around "the wrong Gurdjieffites". The argument that you are not allowed to criticize Gurdjieff or his Great Work without having fully oriented your brain to his cosmology and philosophy is so common that there's a Gurdjieffian slur for it. "Wiseacring" is the word Gurdjieffites use to mean "talking about things you do not and cannot understand because you are not yet as galaxy-brained as Gurdjieff was".
My exposure to Gurdjieff's impenetrable web of BS and the cult of personality around him that it induced has made me suspicious of anyone who claims to be or is claimed to be a towering intellect with unique powers to change the world, especially if they are surrounded by sycophants who confuse obscurantism for genius. Yarvin rings this same alarm inside me, as does Stephen Wolfram.
In re: the canary caper, that story comes from Gurdjieff himself, from his book. It's only assumed to be true, and autobiographical. Why did he include it?
If Ouspensky couldn't fully understand Gurdjieff (as I believe) why should we expect to, who haven't the benefit of ever meeting him? I just pulled my copy of "Beelzebub's Tales" and read some passages to double check, and yeah, he's unfathomably intelligent. I actually read Wolfram's tome. The whole damn thing. (He cured me of megalomania!) To me there's no comparison.
I appreciate the chance to discuss this stuff. It almost never comes up IRL. As I said, I got a lot out of Gurdjieff (or think I did), and you have made it plain that you did not. Fair enough.
"In his most important book, BEELZEBUB'S TALE TO HIS GRANDSON, Gurdjieff talks about an organ that was implanted into humanity called the "organ kundabuffer". It was planted by two archangels in response to galactic catastrophe which affected the solar system which includes the planet Earth.
The organ was temporarily implanted into humankind in order to minimize the sorrow of adapting to the stabilization period where the two moons, Luna and Anulios, would return to a balanced orbit around the Earth."
So now you know.
https://sites.google.com/site/amritayanabuddhism/Home/the-or...
So basically you have to be on board with his sci-fi extended universe in order to grasp the cause behind the central tenet of the Fourth Way: that man is asleep.
> "being-partkdolg-duty" is the task and operation of remembering oneself.
Defining one Gurdjieffism in terms of another Gurdjieffism. Nice. "Remembering oneself" is, roughly, what Hackernews knows as mindfulness, but seems to involve a lot more following Gurdjieff (or one of his disciples, or his disciples' disciples, there must be an unbroken chain to the Master you see) around, scrubbing his floors and latrines, and doing his silly dances. Giving him your money also seemed to help.
> "the sacred Rascooarno" is death of the physical body.
So why does Gurdjieff say "the sacred Rascooarno" and not "death"? Because the Gurdjieffian concept of death is alien to anyone outside the Work. As you say, Rascooarno is the death of the physical, planetary body, but a person (or "three-brained being"), in the course of their life, has or develops other, "finer" bodies made up of even smaller particles than the matter which makes up their planetary body, like the body-kesdjan, which is often equated to the astral body but isn't really. One might say, in other religions, that a person has a soul. But for Gurdjieff even this is wrong: it's more like a person has the potential for a soul. Thanks to -- you guessed it -- the maleficent consequences of the organ Kundabuffer, a soul can only be attained through 20 or 30 years or so in the Work... do you see where I'm going with this?
Anyway, if you had a true friend in the Work, that friend would rebuke you for doing what Gurdjieff specifically enjoined his followers not to do: attempt to interpret his works to outsiders, lest you transmit wrong information and cause those outsiders to be crystallized in the wrong hydrogens.
Yes and no. His opus "All and Everything" is comprised of three volumes. The first "Beelzebub's Tales to His Grandson" (itself divided into three volumes) is the part that is couched as a kind of autobiographical reminiscences of an alien, Beelzebub, to his grandson on the occasion of his pardon and reprieve from exile to Mars. It's allegory. That book is designed to affect the mind of the reader, it's a machine or program, not a book per se.
> Defining one Gurdjieffism in terms of another Gurdjieffism. Nice.
Don't be pissy.
> "Remembering oneself" is, roughly, what Hackernews knows as mindfulness, but seems to involve a lot more
"Remembering oneself" is literal. As literal as words can be. There was no concept of mindfulness in the West at the time. Buddhism was alien and barely known.
> following Gurdjieff
He discouraged followers.
> (or one of his disciples, or his disciples' disciples, there must be an unbroken chain to the Master you see)
The Fourth Way is not a lineage school. There may be people out there who try to make something like that out of it, I don't know. I don't hang out with them. The "Eneagram" craze was an example of a kind of degenerate cargo-cult residue of Gurdjieff's effect. But I don't think you should blame him for what people do with his work after he died.
> around, scrubbing his floors and latrines,
I'm not sure what you're referring to. Are you upset that he didn't clean the toilets personally at his dance school?
> and doing his silly dances.
Have you seen them? They are not silly.
> Giving him your money also seemed to help.
He could extract money from people seemingly at will (have you read the story of the time he nearly initiated an orgy?) He also spent lots of money, time, and effort feeding and taking care of elderly people during the war. In Paris if I recall correctly.
> So why does Gurdjieff say "the sacred Rascooarno" and not "death"?
To distinguish it from the current concept of death, which is very different. the sacred Rascooarno is a natural molting of the physical body, like a kind of second birth, and life carries on in the second and third being bodies. Our deaths, however, are merely the wearing out of a machine. Not having "coated" higher being-bodies into our physical body by the process of "being-partkdolg-duty" we "die like dogs", leaving nothing.
> But for Gurdjieff ... it's more like a person has the potential for a soul.
Exactly! Everyone says "There's a soul" or "There's no such thing" and Gurdjieff comes along and says "You have to make one sucker!"
It's the first new thing under the sun, eh?
> Thanks to -- you guessed it -- the maleficent consequences of the organ Kundabuffer,
You lost me...
> a soul can only be attained through 20 or 30 years or so in the Work...
No, you "coat" a "second being-body" and then you "coat" a "third being-body" and then you molt ("the sacred Rascooarno") and leave the Earth to go live in space with cool aliens that like you, or something.
These higher being bodies are like holograms that you use to store human-style experience in the next world. They're like emulators for your old software, eh?
> do you see where I'm going with this?
Yeah, but why? You obviously know a lot of this stuff but seem really unimpressed. Is it so wrong that I got a lot out of G.I. Gurdjieff without becoming some sort of esoteric edgelord weanie?
I know there are a lot of knobs and fools out there. The "enneagram" craze proves that. But there's also something else there. (Or maybe I'm just crazy. I still haven't quite decided yet.)
> Anyway, if you had a true friend in the Work,
I don't.
> that friend would rebuke you for doing what Gurdjieff specifically enjoined his followers not to do
Well, fuck em' Gurdjieff didn't appoint a successor, so I'll say what I like to whom I please.
> attempt to interpret his works to outsiders, lest you transmit wrong information and cause those outsiders to be crystallized in the wrong hydrogens.
Yeah, this is almost certainly "pearls before swine" but whatever, I'm bored and lonely.
"What was that about hats?"
Reminds me of Mochizuki's Inter-universal Teichmüller theory [1]
Looks like the same psychological trickery works both on the bleating masses and the highly educated.
[1] https://www.scientificamerican.com/article/math-mystery-shin...
If you want a Turing complete combinator VM with transparent serialization of all values, there it is. Nock is not a serious language, I would love to hear what aspects you think it has that could be relevant in whatever context.
I'm pretty sure Yarvin's motivation for making the project obscure was just trolling.
I wasn't taking issue with what you said, just trying to understand how well-grounded it was. I personally have little familiarity with Urbit, just a bit of curiosity (enough to read a few HN comments on the subject).
> If you want a Turing complete combinator VM with transparent serialization of all values, there it is.
I guess the piece that's missing for me is why you believe that set of properties forms a complete set of requirements for the language.
Like maybe they described Nock as "a Turing complete combinator VM with transparent serialization of all values," so then finding something else fitting that description is supposed to be equivalent—but I wouldn't consider it to necessarily be so, since people often speak informally when giving some abstract summary like that (it's not necessarily meant to be exhaustive).
Here is Nock's origin document, for reference: http://moronlab.blogspot.com/2010/01/urbit-functional-progra...
Some of the ideas are interesting but they are independent of Nock. Any combinatory logic would do the trick.
Are you taking issue with the style/language the post is written in? I mean it does sound to me like someone a little too fascinated by their own ideas... —but I it seems too uncharitable to dismiss it because of that.
What I got from my quick skim is that the author was well aware of some similarity to combinatory logics, but intentionally took a different direction with Nock:
> Unlike the lambda calculus, Nock represents code as data, not data as code. This is because it is system software, not metamathematics. Its loyalties in this matter are not even slightly divided.
Or
> As you'll quickly see if you try this exercise, raw Nock is not a usable programming language. But nor is it an esoteric language or automaton, like SK combinators. Rather, Nock is a tool for defining higher-level languages - comparable to the lambda calculus, but meant as foundational system software rather than foundational metamathematics.
This sounds reasonable to me. I don't know if Nock successfully fulfills this claim, but without assuming the author is just straight up lying about this stuff, it seems like, "Any combinatory logic would do the trick" is probably not accurate.
> Unlike the lambda calculus, Nock represents code as data, not data as code. This is because it is system software, not metamathematics. Its loyalties in this matter are not even slightly divided.
This does not mean anything.
> But nor is it an esoteric language or automaton, like SK combinators. Rather, Nock is a tool for defining higher-level languages - comparable to the lambda calculus, but meant as foundational system software rather than foundational metamathematics.
This is hilarious considering Nock is, in fact, esoteric. SK combinators are also very comparable to lambda calculus, and it's not clear what "foundational system software" even means in the context of a combinatory logic just like SK combinators. And why would Nock be any good at "defining higher level languages"? Keep in mind that their idea of "higher level languages" includes Hoon, another esoteric language.
You skimmed it quickly and didn't see anything that jumped out to you as wrong. That's a good explanation for how a cup and ball game like Urbit got as many users as it did: you need a bit of specialized knowledge to see that it's full of hot air.
If I missed what you wanted me to discover in the resource, you could just highlight it here. But instead you've chosen to question my competence and make another series of ungrounded derogatory assertions about the tech.
Now including some mistakes, or at least overly uncharitable interpretations that are useless to an impartial reader:
> This is hilarious considering Nock is, in fact, esoteric.
It's esoteric sure, but it seems like his usage here refers to Esoteric Languages (https://en.wikipedia.org/wiki/Esoteric_programming_language) —which has a separate meaning (e.g. languages "as a proof of concept, as software art,"). That seems to be the whole point when he compares it to e.g. lambda calculus: he is maximizing practicality over mathematical elegance. So it makes perfect sense to point out that while it's esoteric it's not an Esoteric Language.
> This does not mean anything.
Again, if you take an uncharitable extreme, I agree: it's basically a meaningless thing to say. But if I wanted to be charitable I could come up with several ways of interpreting it.
> SK combinators are also very comparable to lambda calculus
Yes, I got the sense he was using them pretty much interchangeably here, using SK combinators as an example of an esoteric language, and in the next sentence he prefers "lambda calculus" because its a formal system in mathematical logic rather than a computational system, and the whole purpose of the sentence is to make a distinction between software foundations vs. mathematical foundations.
Unless you show an interest in exchanging ideas over rhetoric in your reply—don't expect any further responses from me.
Them: It's not interesting.
You: Idk this vague sentence sounds kind of interesting to me. Can you tell me why this is interesting?
Them: Trust me it's not interesting.
Here is my actual opening:
> Just out of curiosity, have you verified in some way that your alternative is legitimate?
The entire conversation has been me trying to to get the other dude to verify (unsuccessfully) a claim he made in the opening comment.
A more accurate re-cap:
------
Them: Nock is pointless, you can just use X
Me: How do you know X would work for all Urbit's requirements?
Them: Of course it would! Nock is pointless. Read this article.
Me: I couldn't find anything in the article to support your claim.
Them: You didn't read the article correctly.
> It's esoteric sure, but it seems like his usage here refers to Esoteric Languages
Yes, that's the sense that I meant it in. Nock is an esoteric language just like those others on that website.
> he is maximizing practicality over mathematical elegance.
Nock is not practical. He is certainly not maximizing practicality by making a combinatory logic that can only increment integers and then recognizing and "accelerating" a particular implementation of decrement! Let's look at Nock:
?[a b] => 0
?a => 1
^[a b] => ^[a b]
^a => (a + 1)
=[a a] => 0
=[a b] => 1
=a => =a
/[1 a] => a
/[2 a b] => a
/[3 a b] => b
/[(a + a) b] => /[2 /[a b]]
/[(a + a + 1) b] => /[3 /[a b]]
/a => /a
*[a 0 b] => /[b a]
*[a 1 b] => b
*[a 2 b c d] => *[a 3 [0 1] 3 [1 c d]
[1 0] 3 [1 2 3] [1 0] 5 5 b]
*[a 3 b] => **[a b]
*[a 4 b] => ?*[a b]
*[a 5 b] => ^*[a b]
*[a 6 b] => =*[a b]
*[a [b c] d] => [*[a b c] *[a d]]
*a => *a
This is what I mean by being too charitable. There is absolutely nothing whatsoever that is practical about Nock.> because its a formal system in mathematical logic rather than a computational system
I really don't think this means anything. The lambda calculus is one of the paradigmatic computational systems, and SK combinators are closely related. And it turns out formal systems in mathematical logic are also related through the Curry-Howard-Lambek correspondence. So there's no meaningful distinction between these things.
> I think you've got me wrong on this—the idea that I'm "relying" on "quick skims" and the POV of an "impartial reader," would imply that I'm somehow using these things against you. I literally am an impartial reader trying to understand this, who spent a little time reading a resource you pointed me at.
No, what I'm saying is that, as an impartial reader, you are giving them too much of the benefit of the doubt, and also not spending a lot of time with it. There's nothing wrong with that, but it means you can get taken for a ride by people who are making a smokescreen.
The problem with claims like:
> Nock is not practical. He is certainly not maximizing practicality by making a combinatory logic that can only increment integers and then recognizing and "accelerating" a particular implementation of decrement!
Is that you are evaluating a component of a larger system in isolation. The form of your argument is that this component, which is a language, has obvious deficiencies/impracticalities that can be established in terms of the language itself and how it relates to other languages.
But this doesn't take into account how the language (which is the component I spoke of) relates to the system in which it's embedded.
The appearance of impracticality is often present in foundational systems. How easy would it be do use your same form of argument and deride the Peano axioms as obviously impractical because: look how much work it is to do arithmetic with a 'successor function'—ridiculous! (i.e. the 'impracticality' depends completely on what you're trying to do with it)
This was what I was trying to investigate from the beginning: how have you verified that Nock's peculiarities don't have legitimate reasons in the context of the system of which it is a component?
If you review our conversation, you'll see that's what I was trying to figure out since my very first statement—and to this point, you have still not addressed it.
Here we go.
Symmetries are useful to understand a domain. If you have one, you know that a point on the left will appear on the right. So question like “but how do you know that there really is a point on the right?” is simply because you know the proof of symmetry.
The answer to “how have you verified that Nock's peculiarities don't have legitimate reasons in the context of the system of which it is a component?” is in the same way. They mention Curry-Howard correspondence: I don’t want to lose too much time on it, but yes, it is a symmetry, so the point on the left called Nock has a corresponding point on the right called lambda calculus with the same properties; and the claims made by Nock’s author about there being no symmetry are disproved by old proofs.
In fact, there are a lot of 50-year-old systems that fulfill Nock’s goals. Since it is an old field, the majority of them had time to develop into practical systems that are much, much clearer and less esoteric.
Which brings me to the goal of Nock. Why do something esoteric when a bit of field knowledge shows the complexity is unwarranted?
One possibility is NIH.
A more likely explanation is getting users into the sunk cost fallacy. Why more likely? Because this technique has been used repeatedly by the author in other fields, like his political essays. I am not the first to have that thought; a quick Google search brings this: https://www.lesswrong.com/posts/6qPextf9KyWLFJ53j/why-is-men...
It does work. So many pixels spilt over an awkward language named after a famous anti-semite admired by the author, Albert Jay Nock.
Please correct me if I'm wrong—but the symmetry argument is basically: Nock could be classified as a concatenative combinatory logic, which is a variation of "classical" combinatory logic; this classical variation, or a particular incarnation like the SKI combinator calculus, can be viewed as a variation on the untyped lambda calculus.
That establishes an association between Nock, the alternative posted by xkapastel (which is a concatenative combinatory logic), and the lambda calculus.
So from here we can say, "why not just use the non-obscure bit of combinatory logic instead?" (we choose this over lambda calculus since Nock's approach appears concentative too, avoiding lambdas)
And my answer is that if all you need is a concatenative universal model of computation—then you're done!
But—where is it actually established that that is the only requirement for Nock in the context of Urbit? That is the question I've been asking the whole time, and which is not answered by the symmetry argument.
Nock's essential structure may be that of a concatenative combinatory logic, but that doesn't mean there aren't other aspects of its design which are important for how it relates to other particulars of the Urbit system (for instance: maybe this variation has nice performance properties in connection with other parts of Urbit—I don't know).
I am not saying, nor is 'xkapastel, that there is no difference between Nock and LLVM IR or any combinatory logic or whatever. We're asking what the point of the differences is. Anyone can make up a language (or any other object or idea) and define claims about that language that no other language satisfies. The question is whether those claims actually represent something meaningful and worthwhile ("interesting properties," as 'xkapastel put it) or just unique. That's a matter for the judgment of the reader, and we cannot just defer to the judgment of the claim-maker that the claims are worthwhile.
So, you might ask, do there exist purposes for which Nock is preferable to LLVM IR? Well, I don't know, but Moldbug's intent was for the answer to be "yes"; there are problems he wanted to solve which LLVM IR definitely does not solve. Foremost among these is getting people to impugn one another's competence on the orange website. No, wait, foremost among these is determinacy and permanence: it is the intent that the result of any Nock computation be deterministic and unchanging through all time. The meaning of LLVM IR, by contrast, changes every time someone fixes a bug in an LLVM backend, or introduces a new one.
You will note that this way that Nock differs from LLVM IR is also a way that SK-combinators differ from LLVM IR. SK-combinators also provide a deterministic computational system that is simple enough that we can imagine not changing it. That is why it was necessary to explain how Nock differs from SK-combinators.
So Nock shares some crucial attributes with combinatory logic and others with LLVM IR, but neither system has the combination of characteristics that Nock does.
Now, why would anyone want a deterministic, permanent virtual machine definition? I don't know why Moldbug wanted it. There are some reasons that I want it; I think reproducible computational experiments are an important way to communicate human knowledge, a way that could perhaps drastically reduce the loss of knowledge from one generation to the next, accelerating the ratchet of philosophical progress which made the modern world possible.
However, I don't want to have anything to do with Urbit! I don't want to use a virtual machine that people credibly say is named after a famous anti-Semite. I also think some of the technical choices in Nock are questionable and may turn out to be fatally flawed.
I despair somewhat in writing this comment because I feel that everything I'm saying is painfully obvious, but obviously there is something about the people I am talking to that makes it not obvious to them. But since I do not know what that is, it seems likely that my own words will be just as incomprehensible to them as Moldbug's voluminous, and to me perfectly clear, explanations. And the level of viciousness in the air makes me think that probably those people will respond to their own incomprehension by launching personal attacks on me, as they have been on each other. It's pathetic.
For the sake of argument, let's say "a deterministic, permanent virtual machine definition" is a desirable quality. LLVM IR at the latest version is a poor tool for this, yes. But LLVM IR at some fixed version of LLVM works fine. It's weird because now you can't use up-to-date versions of LLVM with it, but it's doable: pNaCl did exactly this, and dealt with forking the LLVM codebase in order to freeze the IR definition. If you don't like that, Java bytecode at some fixed version of the JVM probably works, .NET CIL probably works, WASM works (although it didn't exist when Nock was designed), etc. In fact, Urbit's web page compares itself to the JVM and WASM. Perhaps you could use Infocom's Z-machine, or BPF, or something. Alternatively, maybe you just want i386 assembly or ARM2 assembly or MIPS II or whatever. With a validator to make sure you're not using undefined/newer operations, and with some restrictions on threading and input (including input randomness), they're deterministic and permanent, and you've got a wide array of software tools for generating it.
But I think "why would anyone want a deterministic, permanent virtual machine definition" needs to be answered, if we're going to have any idea of what the topic of this comment chain is. We're talking about whether Nock and Hoon are intentionally obscure, which means talking about whether there exist less-obscure things that solve the same problem.
Moldbug's claim - which, even if he doesn't say it in as many words, seems obvious from the history of this conversation and how participants have read his work - is that a) there exists a set of constraints that describe a thing worth wanting for a real-world application, and one of those constraints is that it be a deterministic, permanent virtual machine, and b) his invention, Nock, is a novel solution that satisfies those constraints. If you don't have that, then Nock is, as 'xkapastel puts it, "somewhere in between an art project and a pyramid scheme."
So, for your use case, I might ask you whether the JVM or i386 assembly or whatever answers it, but for the use case of Urbit, we need to figure out what exactly those constraints are. And then we can evaluate whether Nock and Hoon are novel because they solve problems that haven't been solved, or whether indeed there exists a less-obscurantist solution that satisfies the constraints, and thus Nock and Hoon are simply exercises in "look how smart I am" / "you'd never have gotten this from mainstream software engineering, aren't you glad you listened to me" / whatever.
In other words, I think we are off-topic by discussing the merits of Nock in the abstract, and then constructing scenarios in which we find Nock valuable. (And, to the extent that Nock and Urbit as a whole are potentially exercises in crypto-fascist-advocacy, this would be playing into Moldbug's plan - Moldbug's philosophical work takes much the same approach, of making an interesting-sounding claim and then trying to convince you it has real-world relevance because it's just so interesting-sounding and just so different from mainstream opinions that it must have value, and it too can be defeated by keeping "Okay, what problem are you trying to solve" front and center, and therefore Moldbug wants you to forget about that. If we say "Nock is cool, but I wish it weren't named after an anti-Semite," we make people wonder about the anti-Semite; if we say "Nock is, actually, an unnecessarily-complicated rehash of things that already existed, named after an anti-Semite and dressed up to sound cool," then people understand what's going on.) We should first figure out what the problem Urbit needs Nock for, and then we can have a fair discussion about whether Nock is a meaningful invention.
Incidentally, https://ngnghm.github.io/blog/2016/06/11/chapter-10-houyhnhn... is an argument that Urbit, as a project, doesn't need a deterministic, permanent virtual machine definition at all - that there isn't a need for future-proof reproducible behavior in the system, that the constraint on using the Nock VM makes Urbit perform poorly, that the escape hatches to help Urbit's performance undermine the whole project (apparently the Urbit runtime statically recognizes a particular Markdown implementation in Nock and replaces it with a call to a different Markdown implementation in C), that the "simplicity" of Nock makes it harder to understand the high-level purpose of programs and defeats Urbit's claim that programs are understandable, that the Nock VM prevents an Urbit user from doing effective runtime resource control which would be a useful feature in practice, etc.
The same flaw (for this purpose) is present in JVM bytecode, i386 machine code, ARM2 machine code, CIL, and wasm. (e)BPF and the Z-machine might be plausible bases for a solution on those grounds, but you'd still need a lot of work to be sure you'd rooted out the sources of irreproducibility.
Now, as I said, I'm not convinced that Nock in practice solves the problem it sets out to, and Faré's criticisms that you have helpfully linked to are a major reason for that. But nothing that existed does in fact set out to solve that problem, much less succeed. It's true that some other computational basis would also have worked, given enough effort; but I think you are seriously underestimating the amount of effort required.
I do think my previous comment already explained why I think rigorous computational reproducibility is valuable.
That's what I'm pushing back on. There's an idea that because Nock exists and looks cool, it must mean something. And just like the idea that because the rest of the blog where Nock was introduced exists and looks cool, it must be a meaningful philosophical contribution, it's not true.
For instance - Nock, as both its advocates and detractors readily point out, is too low-level to be a language to actually write in. So that means you're writing in some other language which has an implementation in Nock (or perhaps in Nock-and-hopefully-equivalent-C, how's that for security risk surface). And that other language is rich enough to have security issues just like LLVM, and it's either frozen and you accept the potential insecurity, or it's patchable and you accept the potential nonreproducibility. You haven't solved the problem, you've just shoved it up one level so you can get a cool blog post about your elegant lower level.
I agree, I'd love to have a language that solves the problem you describe. I don't think Nock is tangibly closer to solving it than other things are, nor do I think it is tangibly closer to solving the Urbit system's needs than other things are, nor do I think it has some other unspecified merit. And I certainly feel no obligation to figure out some use case which would make Nock look meritorious.
(And, again, Google shipped pNaCl as a way to run untrusted native code. They had to do something to deal with the very concerns you raise. And unlike Urbit, the stakes for getting it wrong were very real.)
I want to point out an error in your reasoning here, though, which results in you seriously underestimating the importance of Nock's goal:
> you're writing in some other language which… [i]s either frozen and you accept the potential insecurity, or it's patchable and you accept the potential nonreproducibility
Suppose I gather some data, do some statistical predictions based on it, plot the results, write them up, and publish the whole bundle as a set of programs for some reproducible computing system, including a build script that rebuilds the article from the source text, the observation data, the statistical code, and so on, with a secure hash of the whole thing. I don't even need to include a PNG of the plot in the bundle — anyone in the future, whether in 02021, 02030, 03020, or 12020, can recompute that bitwise-identical plot from the source data. Moreover, if I made an error in my analysis — either due to a software bug or for any other reason — they can reproduce that error.
Suppose the statistical code is compiled from a Julia-like language to bytecode for the reproducible VM. To achieve reproducibility, I could include the compiled bytecode in the bundle, but a better solution is to include the version of the compiler that I was using. That way, someone who wants to criticize my conclusions in the future can recompile my statistical source code with a new version of the compiler to see if my results were due to a compiler bug. Lacking that, they can reproduce my incorrect results, and they can recompile my source with a new compiler and get a different executable that produces different results, but it will be harder to tell why they were different.
In neither case, though, does fixing compiler bugs destroy the reproducibility of the computation, as you say it does. The executable compiled by the buggy compiler will continue to produce unchanged results on future versions of the VM, as long as they are not buggy. Shoving the problem up one level makes it into a completely different kind of problem with completely different implications.
I don't think there's any other system out there that attempts to deliver this level of reproducibility today, although some video game emulators come close. I'm probably going to have to write one myself, because I'm not convinced Nock is going to achieve it. Substantial parts of Dercuano and BubbleOS are steps toward this goal.
Isn't that pseudo-profound (i.e. sounds grand but says nothing)? It seems like you could say the same thing about assembly or Java.
This is perhaps the most simultaneously concise and accurate description of Curtis Yarvin, or at least of that of himself which he chooses to display in his writing, that I can imagine ever encountering.
Do you have any examples of aspects that could make the obscurantism of Nock necessary?