8 ms·
Just out of curiosity, have you verified in some way that your alternative is legitimate? (Like maybe there are some contexts you haven't considered where other
by westoncb 6y ago
Just out of curiosity, have you verified in some way that your alternative is legitimate? (Like maybe there are some contexts you haven't considered where other aspects of Nock are necessary.)
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?
- xkapastel 6y ago> Just out of curiosity, have you verified in some way that your alternative is legitimate? (Like maybe there are some contexts you haven't considered where other aspects of Nock are necessary.) 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.
- westoncb 6y ago> I would love to hear what aspects you think it has that could be relevant in whatever context. 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).
- yasp 6y agoNock doesn't have the notion of lambdas. The language xkapastel links does. Why doesn't Nock? No clue.
- xkapastel 6y agoYou are being too charitable. Nock does not have any interesting properties and does not meet any serious constraints besides being obscure. Here is Nock's origin document, for reference: http://moronlab.blogspot.com/2010/01/urbit-functional-programming-from.html 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.
- westoncb 6y agoHmm, I looked around on that post at all the parts referring to Nock and I still don't see anything that would convince an impartial reader of what you're saying. 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.
- xkapastel 6y agoHave you ever implemented a programming language before? You are relying a lot on "quick skims" and the POV of an "impartial reader", i.e. someone who does not know the domain. It's much easier to see through the bullshit if you're familiar with PL. > 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.
- Lewton 6y agoIt's intentionally obscure, I believe the stated reason was that moldbug only wanted people to use Urbit who have buy-in in the form of having spent/wasted a significant amount of time and effort
- scarmig 6y agoRemember, the number one cause of software product failure is having barriers to entry that are too low.
- mcny 6y ago> Remember, the number one cause of software product failure is having barriers to entry that are too low. 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+number+one+cause+of+software+product+failure+is 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.
- deleted 6y ago[deleted]
- scarmig 6y agoSarcastic.
- 6y ago
- cannabis_sam 6y agoWhat do you mean by ”verify” in this context? Are you looking for a formal proof? Do you have any examples of aspects that could make the obscurantism of Nock necessary?