4 ms·
I read the entire thing (and watched the 2013 demo) and still have not the first clue what Urbit _is_. Too many neologisms, not enough ELI5. Claiming that you
by hprotagonist 8y ago
I read the entire thing (and watched the 2013 demo) and still have not the first clue what Urbit _is_. Too many neologisms, not enough ELI5.
Claiming that you don't use "the lambda calculus" to do dependency resolution, of all things, seems weird to me. Even from my 30k foot understanding, that seems like a non-sequitur at best.
- thanatropism 8y agoThat's a misrepresentation. I took the trouble to find the offending paragraphs on my phone and paste them: ---- Dependencies 20th-century languages are all at least vaguely based on a formalism from the ‘30s called the “lambda calculus.” The fundamental operation in lambda calculus is variable reduction from name to value. So lambda languages all have a symbol table or environment which binds names to values. Modern build systems assemble large programs out of small files by reusing this symbol table for global function names, a process called “linking.” Unfortunately, linking causes a problem known as “dependency hell,” involving baffling, unpredictable upgrade failures. The fundamental problem is the “diamond dependency” — when a build requires two different versions of one symbol.
- empath75 8y ago‘From the 30’s’ sounds like it’s ancient technology. Most programming languages include arithmetic, a formalism from 3000 years ago.
- thanatropism 8y agoHe does make a number of references to "20th century's computer science" that imply he's got the new stuff. He also says "functional programming without abstract math", which reads a lot like "Austrian economics" (which Moldbug and Land swear for). I'm saying this in a thread about his politics, but my basic evaluation holds: he's probably not discovered a new system of government and a new computer science. But he's careful and scholarly with his arguments, and worth knowing.
- empath75 8y agoLol. He’s about as well informed on politics and philosophy as he is with computer science.
- antidesitter 8y agoLambda calculus was introduced in the 1930s, so Curtis’s statement is literally correct.
- geofft 8y agoIt is an absolute non sequitur because there are plenty of languages that do not have the diamond dependency problem and are still based on the lambda calculus (and on symbol tables, which as it happens is pretty much not required by the lambda calculus at all, that's kind of the whole point of alpha-conversion and beta-reduction). Rust, for instance, will happily let you import two different versions of a library in your dependency tree, and just treat type definitions from each as different types. You get non-baffling and predictable (but still annoying) compile-time errors when library B and library C try to pass an object from library D between each other while requesting different versions. Rust also will happily let you define lambdas.