To give a concrete example, this would be useful for any Ethereum app that doesn't want to store data on a central server (which most cannot do whether for legal, security, or ideological reasons). The idea to me is that the internet wasn't built very well to run decentralized apps [which is definitely the case if you've ever tried building one without having to rely on central servers for caching, storing accounts, comments, etc.]. It's, imo, a nice complement to blockchain tech like Ethereum and Bitcoin. Long term once it's out and running I see dapps like Augur [a decentralized prediction market which I work on - http://augur.net] using it so users can securely store their private keys, report data, market data, trade history, etc. and easily go across/between devices as opposed to just using localstorage [which is a pain to migrate using] or fetching it from ethereum every time [which is very time consuming and has lots of overhead].
If we're going to seriously move in this direction of decentralization, at scale we need something like urbit.
No one else is really tackling the same set of problems.
Came across this quote on it by Alan Kay: "They have verve, and that's generally a good thing. In this case there are a lot of details that need to be grokked to make any reasonable comment. The use of combinators (a kind of dual of lambda calculus) harks back to an excellent thesis by Denis Seror at the University of Utah in the 70s that produced a safe, highly scalable and parallel implementation. I haven't looked at it more deeply (and probably should)." [https://news.ycombinator.com/item?id=11810177] - very cool!
Reread my post, I said almost. Nothing in life is trustless [for instance, solar flares could effect my computer's state], but you can get close. So we agree there
> Ethereum adds no value to Bitcoin because any useful apps you want to make NEED a centralize source to provide data to it.
This is called the oracle problem --- it's a difficult problem, but not intractable. Augur doesn't use a centralized source to resolve its markets, it has groups of reporters who do that [with a whole set of incentive structures surrounding truth-as-schelling-point and relying upon bonds to cause monetary loss to people attempting to "cheat" the system. Your cost to cheat the system will almost always be more than potential profit [unless there's only 1 market in a system with a ton of volume and no other activity, which means it's basically dead anyway and there are 2 backstop mechanisms surrounding this as well]. Anyway given infinite money anything is attackable / not trustless.
Second, you're missing _a lot_ of the benefits of Ethereum. It can control funds programmatically. To run a prediction market using bitcoin you have to hold customer funds, on Ethereum you don't [this is a huge opex]. On Bitcoin, you have to process the trades, on Ethereum you don't [hello more opex!]. On bitcoin you're forced to use a multisig 3rd party or have counterparty risk to trade prediction market assets, on Ethereum you don't. You have to resolve markets yourself [or with multisig of a handful of people, because bitcoin cannot support multisigs beyond 20]. People can't create their own markets and add liquidity to them on your platform if it's on bitcoin without trusting you either. Could go on and on, but _unless_ you're referring to a sidechain of bitcoin you can't do any of that.
As far as the example here: "For example, if I want to make an app that sends coins to someone when bitcoin is at a certain price, I would inherently be relying on the trusted source, that provides the bitcoin price data." is wrong. On Etherex on ethereum I can get data for he btc-eth price and do a transaction based on the exchange rate without trusting anything in the outside world
I still have no idea what it is actually trying to accomplish. Is it a decentralized storage/compute platform? Why are they calling it an OS? Why does it only reference existing technology to say it isn't that?
None of the links are working for me either.
It's an OS admittedly in the metaphorical sense -- the same sense that your browser is an OS. That is, a platform that runs higher-level programs. Urbit doesn't run on bare metal, though it could, in the same sense that your browser could.
In fact, one way of describing Urbit is "the browser for the server side." In the same way that your browser replaces a bunch of individual client apps with one native client that's a platform for higher-level programing, Urbit s/client/server/. Does that help?
why a chain of specialized posix programs would fail for that?
One: a chain of specialized Posix programs would work for that. You would have to be someone who can manage a chain of specialized Posix programs, though.
Two: serving as a general-purpose stateful HTTP client is a subset of what Urbit does, though an important subset. It's also a server on a public network.
The second problem can also be solved with Posix programs, but it pretty much seals the requirement for a trained professional. It is possible to imagine a high-usability personal Linux (Sandstorm, for instance), but not really a high-usability general-purpose Internet server (at least if it implements social apps via decentralized protocols).
(In fact, it's not even clear that trained professionals are comfortable with decentralized protocols -- see under, Google doesn't even want your XMPP traffic, etc.)
Urbit may or may not be the perfect solution, but I think it's clear that if ordinary humans are going to have their own personal servers, they're going to need some kind of new system software.
If they are doing it for free this won't scale. If I am paying them why don't I just pay someone to maintain standard software.
I find this very strange because I love all of the work on distributed and decentralized systems. I am normally excited to read more about a new approach, but I still don't understand what you are trying to do and feel like I am just being fed marketing terms like "The browser for the server side" wtf? Do you mean CGI?
For example, suppose someone designing the first JS environment at Netscape had suggested that since JS is so great, you should be able to make POSIX system calls from it. Or link to locally stored libraries. Or use a language someone had heard of before. I think you'll agree that if this decision had been made, most people would never have heard of JS.
The browser is a second-level OS which provides a service no first-level OS offers; it loads applications almost instantly and sandboxes them securely.
Now, in theory, you could modify a Unix to solve this problem. Arguably, it's a problem any OS ought to be able to solve. We are certainly much closer with containers. But still, imagine what it would take to replace webpages with Dockerfiles. (sandstorm.io is the closest to something like this; definitely check them out as well.)
Urbit's semantics are isolated from the platform in just the same way. The job of a general-purpose personal server is very different from the job of a general-purpose client -- they have almost nothing in common. But the isolation layer over the current systems platform is the crucial element.
Although I must admit it does look foreign at first because of the symbols, I found it very easy to learn. And believe me, I am not a theoretical mathematician.
This makes sense, looks great, and I might well give it a try!
I want to be able to go on a website and post bullshit that I'll regret 15 years later. And if after 15 years someone unearths that post, I want to be able to say "that proves nothing, anybody with a text editor could have forged that". You might say a prospective employer wouldn't buy that argument even now, but I want to live in a world where people do buy that argument. Where you can post party pictures on the internet, because it's trivially easy to fake pictures, and everybody has accepted that pictures have no proving power, so everybody feels free to post them, even my boss. Let technology drive society to be more laissez faire.
A similar thing with bitcoin. My utopia doesn't involve cryptographically secure, ideal money - it rather involves no money at all. I'd rather put my energy into developing a new kind of society based on free association (rather than labor & money) than using algorithms to cement this society.
I believe cryptography is great for being CRYPTic, i.e. providing anonymity. But using it to prove identity etc. should be used very sparingly and not without thinking about the consequences.
[x] And I don't want to denigrate this project. It seems to be a great technical and theoretical achievement - it's just that their ideals are not necessarily mine.
If you bound an identity cryptographically to your real name, that's permanent -- no getting around it. We all make mistakes. However, one of the benefits of Urbit is that you can build a reputation around a pseudonym that isn't linked to your real-life identity.
There's a place for the 4chans of the world, with totally disposable one-time identities. You can do this with Urbit as well -- use a 128-bit self-signing identity (comet). But most people tend to want a little more stability and permanence.
A problem with disposable identities as usually implemented is that they are too cheap and easy to make. This makes it easy to make a new identity every place you want to be an asshole. The end result is that places get tired of this, and ban such identities from their spaces.
I think what we might need are semi-disposable identities. You can make a new one whenever you want, but it costs something to make a new one, and that cost goes up with each new semi-disposable identity you make.
Anyone can create a 128-bit comet. But once the comet system starts being abused by assholes and bots, signs will go up all over Urbit. These signs will say "humans only" and deny admission to comets -- essentially blocking anyone who has not invested any real stake in their identity.
The normal quantum of reputation and of human identity is the planet (32 bits, like an IPv4 address). Ideally a virgin planet would cost about $10.
Basically, if this cost is far above the amount of money that a spammer can make before a reputation system catches up with the swine, there will be no commercial abuse. This leaves reputation systems to deal with the much easier job of wrangling random creeps and weirdos.
So if you invented this design yourself, yes, it's a very good one...
BTW, ~bitret-worwyd here. ;)
A planet is like a car -- it's not a toy, it's a tool for a responsible grownup. There are about 4 billion adults in the world. And not all of them are even Internet users.
Of course, the population keeps growing. Eventually either people have to learn to share, or the price will go up, or humanity will learn how to stop expanding exponentially.
Think of a planet as a unit of autonomy and reputation, not of personality. The global supply of autonomy is 2^32 units. That's not perfect in any sense, but if the supply is infinite the network is ungovernable, and the value of each unit is zero.
It's also an improvement on a world in which there's one unit of autonomy, and its name is Mark Zuckerberg. Urbit does a lot for digital freedom, but we're not in the miracle business here. No one can do infinity for digital freedom.
There's a reason why the IETF decided to switch to 2^128 for IP6. Mainly, because there are more computers and devices that need addressing than IP4 can handle.
I have to question the design of Urbit why you chose to go with 2^32 addressing space?
> Of course, the population keeps growing. Eventually either people have to learn to share, or the price will go up, or humanity will learn how to stop expanding exponentially.
Again, the future is "Pay to Play", just like Ethereum? And, is that a population control argument? How would you propose to "stop expanding exponentially"? Chinese method? Ender's Game method, or something else unsavory?
> Think of a planet as a unit of autonomy and reputation, not of personality. The global supply of autonomy is 2^32 units. That's not perfect in any sense, but if the supply is infinite the network is ungovernable, and the value of each unit is zero.
Ah, so you are the "governor", hence why it must be governed? This is literally artificial scarcity on something that could easily have been near infinite
> It's also an improvement on a world in which there's one unit of autonomy, and its name is Mark Zuckerberg. Urbit does a lot for digital freedom, but we're not in the miracle business here. No one can do infinity for digital freedom.
So switching from one master to another makes better "freedom"? I get being against walled gardens. I'm against them as well. But you make no point why Urbit isn't just another walled garden (using funny language to hide behind it no less) with you at the helm.
They haven't. They went with base 256, for easier recognition of 32-bit (and 16-bit, and 8-bit) numbers. You can get a 2^128 identity or a 2^32 identity (or others.)
The fact that 64-bit numbers (like ~novfes-lodzod-sibfes-talzod) in Urbit's base 256 are twice as long as 32-bit numbers (~sibfes-talzod) which are twice as long as 16-bit numbers (~dalryp) and down to 8-bit numbers, which are the most memorable and highly coveted (disclosure: you're looking at a comment written by ~del, aka Hex number 0x25) is something between a feature of Urbit's networking stack, and an unavoidable consequence of doing math and dividing things up between persons that are remote from each other, therefore each needing addresses to be identifiable.
Identities that are made of 128-bit numbers are free, and essentially unlimited. They are basically public key hashes and the risk of a collision is sufficiently low that there is no need for them to be generated by a single authority and centrally assigned. (Note that this does not necessarily scale to the population of the earth and beyond as a solution to addressing graph nodes and efficiently routing traffic between them.) Identities that are made of shorter numbers are limited in number and assigned hierarchically; even if there are a boat-load of 64-bit numbers, it's not half as many, it's ½^64 times as many. Certainly there are more 64-bit numbers than humans on Earth today, or for the foreseeable future.
Whether you consider this to be more problem or solution will probably depend a lot on which side of the spam-wars you find yourself on. Currently there is no Urbit software or infrastructure that I am aware of that algorithmically discriminates against one kind of numbers or another.
You won't expect one authority to differentiate each of 8-billion humans and make sure that each one is granted a separate identity (but not more than one), will you? How about 256 such leaders? Still seems far-fetched, doesn't it... especially given the difficulty of coordinating 256 separate leaders. 65536 very smart individuals probably also cannot be expected to coordinate the identities of the rest of the humans in the world. It would be gargantuan undertaking just handling it when some of these leader-folks have forgotten or lost their passwords (and potentially disastrous for the 0.0015% of the world's population under their charge.)
64 bits of hierarchical ID space is enough for every 32-bit identity (planet) to individually dole out as many 64-bit numbers (moons) as there were 32-bit numbers to begin with. Urbit takes advantage of this roughly to make scaling the network's identity framework to rather immense proportions, happen at least a bit more naturally.
If your 32-bit leader gives a lot of 64-bit IDs to people that turn out to be spammers, you run the risk of being lumped in with those spammers by algorithmic processes. Imagine such a process that tries to discriminate against spammers and keep them from spamming everyone who is known on the whole network, at any scale. It's not a simple proposition, at all!
(the reasonable assumption being that only a tiny fraction people will bother or care to actually make arrangements for this)
Or even without death, the idea being urbit "property" is all cryptographically locked tight, correct? So can a planet get lost? If someone loses all their keys or a server park gets droned and the dog ate their backups or something?
Don't worry! There aren't 4 billion people on this world that can spare $10 on a piece of virtual property. Just don't accidentally solve world poverty and it'll be fine.
The problem with any kind of long-lived pseudonymous identity though is that it is really hard to do proper opsec and keep it distinct from your real identity, but I'm not sure there is a technological solution for that. I mean even your grammar can give you away (stylometry).
I'm all for that, but for that to really work you'd have to change what people understand about ownership of material goods, and I suspect that'll be a hard battle to win. Perhaps a good place to start would be experiencing life in an ecovillage, some of them work with a minimal reliance on money.
I find interesting that sometimes technology wants to push society in a certain direction - that can be good, bad, or neutral - and society resists with new technology, and this creates an curious interplay. Like file-sharing made it trivial to share music. Either we change society, everybody can access music for free, and we find a new way to feed and reward musicians. Or we keep society the way it is, invent DRM, and pretend files are material goods. Or for an older, more drastic example, think of the effect of widespread contraception on sexual morality.
About changing people, I think a widespread objection against utopias is to say they are trying to create new people, and I think this objection is not entirely unfounded. I'd personally try to change society, so that what's between people and not the people themselves, if you know what I mean. I wouldn't even want to try to put everybody through an ecovillage or a kibbutz etc., although I'm sure it's a valuable experience. Rather make small, incremental changes, and set incentives such that people automatically do the 'right' thing. But, as I said, I have no concrete plans, and fixing human society is a really really hard problem :-)
The first thing is to start building alternative living arrangements where people can get what they need to survive without relying on money. I do think ecovillages are a good model to start with, though I'd ideally like to see the culture of each self-sustaining village be more diverse.
After you have a network of these self-sustaining villages, you move from providing the bare essentials to sustainable versions of luxuries. To give you an example of this, you could class medicine as a luxury (though some would class it as essential). The idea is to make the alternative lifestyle more attractive by making it so people don't have to give up as much.
By doing this, more and more people will choose to live in this new way of their own free will, as not only will you be able to live in a sustainable way without giving up on technological progress, you'll also have a diverse range of settlements to live in, and you'd be free to move between them as long as the new village had capacity.
Buckminster Fuller once said "In order to change an existing paradigm you do not struggle to try and change the problematic model. You create a new model and make the old one obsolete.", that's the best way forward IMO. I do think the existing network of ecovillages is a good starting point, and I think it's possible to extend this base to cover more of what people want. That's the way I could see a moneyless society emerging.
(Haven't checked if anything changed since then.)
This paper didn't really tell me anything about Urbit that I didn't already know. But it's good to see them have a nice clean readable rationale.
I read INTERCAL documentation twice. First time for fun & crazy and I had some good laughs. Then a while later I came across a challenge to write X in INTERCAL (I forgot what X was), so I got the documentation again, this time reading it with intention to write code, ... I gave up halfway, in horror.
INTERCAL was designed to be "most unlike any other programming language" and didn't stop for any feature if it could be twisted into being more unlike any other language. And it shows, it's hilariously hard to program in, and gets in your way on purpose.
Ubrit also seems so far to be very much unlike many or most systems, ever. But it's more about trying something new, with an idea, it uses its weirdness to support the idea, but it doesn't stop at nothing to keep pushing the weirdness over the top. There's another goal in mind. But the goal is not very funny so that's an extra barrier it has over INTERCAL.
If it is supposed to be for the people how am I supposed to find a route between hosts behind a NAT? Is this galaxy.urbit.org the DNS and the TURN relay? Is the expectation of the 'server cluster that is yours alone' still dependent on someone else running the relay? How can my servers have friends that aren't part of my trust network? How do I run my own trust network between people I want to trust?
The weirdest thing is that there doesn't seem to be a designed way for an operator of an Urbit to talk to their/other Urbits. Where's the classic plain text protocol to at least say HELO? How do I fix it?
This just ends up looking like a specific-use estoeric lang + runtime to me, which I do enjoy as an exercise. I just can't see how the UX problem is going to pan out based on what is presented.
Currently, you get a planet under a star under a galaxy. Galaxies are all discoverable under galaxy.urbit.org, and have a hard-coded public key in the kernel.
If I start up a planet under ~doznec under ~zod, and I want to talk to someone else, I first check if I already exchanged public keys with them and know their IP address. If I don't then I ask ~doznec (my parent). If they don't know, I ask ~zod. If they don't know, then I ask the galaxy that is the ancestor of the person to route me to the client, either on my behalf if I'm behind an extremely restricted NAT or just send me the IP and let us handshake. Galaxies are essentially root CAs.
There are also unknown, reputationless urbits called "comets". Their names, instead of being a number that maps to their hierarchy in the network, is the hash of their public key. This way, if you send a message to ~some-commet you are essentially using a pinned certificate. You still use ~zod for the initial sync of urbit files and TURN in the case of NAT, however. I don't see any reason why this can't become a DHT instead of using ~zod, however.
You can verify peers public key out of band if you want, or even add the peer to your known ships list manually if you are paranoid. You can even change the hard-coded galaxy keys in the source code, and then spin up your own galaxy...it just won't be trusted by anyone else on the network, and is probably a bad idea.
I'm not really sure what you mean by "classic plain text protocol"? Urbit builds its own network stack on top of UDP, that provides "exactly-once"(ish) messaging. All messages are just Nock nouns sent over the wire, with native support for RPC messages. You can just run `|hi ~haptem-fopnys "how are you?"`, and we have an IRC simulacra called :talk that you can switch to with ^X (type `;join ~doznec/urbit-meta`
Not using TURN and STUN specifically as the RFCs, but in effect it's the same. Routing will STUN (establish a direct peer-to-peer connection) so long as either side has full cone NAT.
As a planet, you need some star to route for you. Right now, the network is small and friendly enough that trust problems aren't an issue. As we grow, we'll put in an escape protocol so that you can switch stars if you have an issue -- there are 2^16, after all.
Urbit is not PGP. It's designed to feel more like the early Internet, ie, a wide-area world of nontrivial default trust. At present, it would be foolish to go full cypherpunk, because we're a long way from being worth attacking.
Hoon is unusual, but I wouldn't call it "esoteric" -- that term is reserved for languages which genuinely don't care about usability.
It's not as much that. If I am going to be owning a service that I want to use among my peers generally someone has to run the thing and generally I am that person. If I am relying on urbit.org then the goal described in this overview of "Your urbit presents your whole digital life as a single web service. And since it's yours, open source and patent-free, it never shows you ads. Or loses your data. Or updates without your consent." is not met. If urbit.org is so entrenched and the galaxy lookup so well defined how do I use this when you are gone? The galaxy lookup is clearly one of the most critical pieces of the design yet seems the most weak. In the world of online games the lookup service is what has a community live or die, and I did not see a better answer after writing the comment.
It seems that the only way is to recompile and distribute an alternate version of the software.
> Hoon is unusual, but I wouldn't call it "esoteric" -- that term is reserved for languages which genuinely don't care about usability.
I would class it as such because there doesn't seem to be a description (going by the whitepaper) of modularity/code layout/best practice sort of thing. There is also the complexity of symbol management from bash/perl/php land that seems to be in Hoon too. I work with grammars all day and I guess I was just looking for a more formal description of the language.
One: it costs 20 bucks a year to run urbit.org in its capacity as a DNS server for binding 256 names to IPs.
Two: at present, there are about 50 galaxy holders, so if between them they can't scrape up 20 bucks a year to keep urbit.org registered, Urbit has worse problems than centralization.
Three: the use of DNS as a root routing table is an implementation detail in the Unix process, completely isolated from Urbit. When Urbit wants to route a UDP packet to galaxy X, it routes to the reserved range X.1.0.0. If the DNS itself collapsed, we could probably find other ways of mapping this table.
I would not call bash/Perl/PHP "esoteric" either -- it has a very specific meaning:
Hoon is a little under-documented and should have its grammar specified somewhere, although the easiest way to do so would be just to clean up the Hoon parser (a parser combinator written in Hoon).
(The original plan was for the Hoon parser to look as pretty as a spec grammar, which many parsers in Hoon do. But looking at ++vast in hoon.hoon, you'll see we fall a little short of that goal.)
Here's plain text for anyone interested: http://urbit.org/posts/overview.md
Edit: it should be easy for us to stick that link inside a noscript tag be default. Issue here: https://github.com/urbit/arvo/issues/149
You're doing a lot of work yourself: loading pages (why not let the browser do that, catch errors, display progress, etc.? Now it shows a spinner and if I hadn't backgrounded the tab already I'd have given up on loading because "clearly the spinner isn't doing anything"); opening links (I can't ctrl+click because, hey, you're handling the opening of links yourself; why not let the browser do that?); changing the title happens only after the new page loaded, which takes 20 seconds, during which time a white page is displayed with the old browser and the new URL already (the browser would change it to "loading new page" for you); and there are some cross-origin resources (alright, the browser doesn't do this, but it's almost difficult to mess that up with the widespread TLS support these days). I probably caught most of my personal things, but the general idea is to be more lazy ;)
The links not opening on ctrl+click is ridiculous (issue here: https://github.com/urbit/tree/issues/10) as are the cross-origin resources. Loading in the title is a good idea (issue here: https://github.com/urbit/tree/issues/11).
Being lazy is good. I'm with you there!
> "Each urbit is a node on _an_ global, encrypted P2P network."
> Each urbit is a node on an global, encrypted P2P network. Your Urbit name, a generated pseudonym like ~talsur-todres, is also your network address. Like Bitcoin, Urbit address space is a cryptographic asset with a limited supply.
Additionally from the whitepaper:
> Functionally, Urbit is a full execution stack. VM, compiler, OS, network, web server, and core apps are 30kloc […]
It's a distributed, encrypted peer-to-peer virtual machine. Fascinating.
Interesting to see what Urbit _actually_ is after all the pretentious bullshit they've spouted in the past.
That's the promise of urbit.
Exactly right. Just think of Urbit as the Information Super-Duperhighway, and you can't go wrong.
I need to check the current progress. I hope the previous "invitation/ticket" I had is still working. :)
"Addionally, we're creating an open political and economic process, with a small, fixed-price public presale of Urbit address space."
Why does an "open political and economic process" require (or even allow) a "pre-sale of address space" by a central authority?
Our experience is that people rapidly bond with their ship names. Apparently no one is too old to want a secret codename. And human beings of a more grownup character can interact pseudonymously through dignified, impersonal synthetic names -- instead of retarded juvenile handles as on Wikipedia etc, or real names as on Facebook.
At least I think this is the text, I can't check.
That's written under the heading "The Urbit future". I presume that it is meant to describe how things would pan out if Urbit is a success.
But how is this vision enforced... or even made likely? Why would powerful monopolies like Amazon submit to this, instead of supplying an app specifically and exclusively for shopping at Amazon?
Jargon: noun (data), nock (interpreter), mint (compiler), span (type), twig (expression), gate (function), mold (constructor), core (object), mark (protocol). It's Newspeak for programmers.
The overall concept seems to be a federated social system, like Diaspora. Everybody has a online presence which they own. But you can take your ball and go home, moving your online presence somewhere else, and it still gets found by others. Somehow. (That's a hard problem at scale.)
There's a claim that nobody can create vast numbers of identities for spam purposes because there are only 2^32 possible human identities. (That number should have been at least as big as the population of the planet. 2^36, maybe.) Apparently you have to buy address space, which is a profit center for somebody.
There's a download, which gets you their "OS" (which runs on top of another OS), an interpreter for their Hoon language and access to their chat environment.
Not sure what to think of this, but someone put in a lot of work.
Nock is very nice.
Hoon bends the mind, which is actually a nice thing.
This whole thing bends my mind anyway.
A good option for avoiding Alzheimer by training those neurons... interesting internal feeling trying to grok it for sure.
My gut feeling was this was a bucket of NiH syndrome. There was too much duplication of work, and way too much made-up jargon to throw us off the mark of what it really was.
But yeah, a cult.
After research, I steered away, and hard.
1. Newbies trying to grok the platform are mocked mercilessly. Publicly over reddit and twitter.
2. The "leader" is an avowed racist and nasty person in general. Now, ad hominems aren't "good"... but if I work on it, I get lumped into the similar group. Just no.
3. It uses "Hoon" to program, which is in reality a Lisp variant. They wanted something completely foreign so "only dedicated people would learn it". Seriously. Use Lisp.
4. It's another company interests driving the project. Projects like these have the potential of changing everything on the internet. Locking it behind a company "firewall" means if they die, the project does as well.
#2 is not worth bringing up again, but you might want to look carefully at the dictionary meaning of the word "avowed." If a person denies being a communist, it is still possible for him to be a communist, but perhaps it doth protest too much if you go all the way to "avowed communist."
#3 seems improbable, as (a) I don't know Lisp, and (b) Hoon is a typed language. "Only dedicated people would learn it" sounds like an interesting marketing tactic which must involve some kind of strong reverse psychology. Frankly, I have enough trouble with basic forward psychology.
#4 would be perfectly true, except that the company owns less than half of the Urbit namespace. The rest has been distributed across about 50 more or less random individuals.
(I think I know the hackerspace you mean -- Bloomington? A bunch of them drove to LambdaConf and interned. Incredibly smart, nice and wonderful young people, needless to say. I'd hang out with them all the time if I lived there.)
It is not hard to re-invent/re-discover Lisp. In fact, it happens all the time. So just because you don't know Lisp doesn't mean you haven't re-invented it, though it does likely mean that you have re-invented it badly. Re-inventions of Lisp are sadly common. Good re-inventions of Lisp are rare. And good re-inventions of Lisp by people who don't know Lisp are unheard of.
I have never understood, and still don't understand, why you choose to wear your ignorance with such pride.
> Hoon is a typed language
So is Lisp.
Now, one might feel differently if Lisp, or Haskell, or any other functional language, was such a conspicuous market success. Under the circumstances, however, I don't think one can be faulted for the suspicion that perhaps functional programming is too important to be left to the functional programmers.
I think we'll have to disagree about whether or not Lisp is a typed language. I realize that people with IQs of 175 have an uncanny knack for taking indefensible positions and then defending them, but I'll just have to take this one on trust.
While we're measuring our respective equipment, however, we can agree that Lisp has macros. Hoon does not have macros, because it's a pure typed language and a pure typed language doesn't need macros.
If Hoon did have macros, however, they would be inherently hygienic, without anything like a gensym. If this is a good time for you to favor us with a lecture on the virtues of Lisp, perhaps you could start with gensyms and their place in "Maxwell's equations of software."
That seems like a peculiar position to take in light of your self-avowed and (apparently) carefully cultivated ignorance of Lisp. If you don't know Lisp, how would you know if it's typed or not?
BTW, here's a clue. (Spoiler alert! You may learn something about Lisp by reading the following.):
Welcome to Clozure Common Lisp Version 1.10-r16479M (DarwinX8664)!
? (type-of (sqrt -2))
(COMPLEX (SINGLE-FLOAT 0.0 1.4142135))
? (sqrt 'x)
> Error: The value X is not of the expected type NUMBER.
I am reminded of this koan:
In the days when Sussman was a novice, Minsky once came to him as he sat hacking at the PDP-6.
"What are you doing?", asked Minsky.
"I am training a randomly wired neural net to play Tic-tac-toe", Sussman replied.
"Why is the net wired randomly?", asked Minsky.
"I do not want it to have any preconceptions of how to play", Sussman said.
Minsky then shut his eyes.
"Why do you close your eyes?" Sussman asked his teacher.
"So that the room will be empty."
At that moment, Sussman was enlightened.
Most languages don't.
> a pure typed language doesn't need macros.
Of course. No language needs macros. That's why most languages are serviceable despite not having them.
> favor us with a lecture
You should be careful. As you yourself have just observed, losing your ignorance is a one-way street. The more you let me teach you, the closer you get to the edge.
I had no idea the concept of an atom had indeed degenerated all the way into complex numbers, which to me and to all decent Americans will always be a "cons" cell. Obviously I had not reckoned with the full and complete degeneracy of Clozure Common Lisp Version 1.10. Or something. If I knew Lisp, I could perhaps condemn it correctly.
In any case, sir: you are misinformed. A "dynamic" type system isn't actually a type system. At best, it's a sort of crutch for retired Jedis who can barely swing their obsolete, one-ended lightsabers.
Or do you wish to become enlightened? Come visit our library, old Jedi. At urbit.org, we have all the enlightenment you need. The age of Lisp was glorious, true. But much time has passed and much we have learned. The times change, uncle, and we must change with them.
I didn't say it was. I said Lisp was a typed language. Different claim. Lisp can be either dynamically or statically typed, though dynamic typing is more common. See:
But see my earlier warnings about the possibility of losing your carefully cultivated ignorance.
If you really want to play with fire, read these too:
Pay particular attention where it says, "Type systems are commonly classified by several words, of which the most common are ... dynamic ..."
Everything we know about hygienic macros is mainly the result of research in Lisp dialects.
Everything that has syntax has macros. Just not necessarily user definable macros.
Syntax takes some clumps of symbols and converts them to some other symbols. When that is user-defined, we call it a macros; when it is hard-wired in some parser, we call it a grammar production.
"You don't need macros" is reminiscent of "why would you need more than 640 Kb of RAM?"
If you don't need macros, it means that the language syntax has provided exactly the right set of hard-coded ones in the parser.
If that is true, why are there different languages without macros with different syntaxes? And which one is right?
The advantage of fixing the set of hardwired macros is that, when reading code, everyone knows exactly what every line is doing, without having to indirect through the local macro environment. Macros are the first step toward a DSL.
DSLs are always and everywhere a bad idea. They may make code slightly cleaner or better-looking. In exchange, they add a level of indirection to the task of trying to understand it. This is the source of the nickname "write-only code," a common failure mode in FP. Write-only code can also be created by extravagant and pointless use of higher-order or non-strict programming, both of which complicate the task of reading code.
For instance, Hoon has a rune (keyword or digraph) for a 2-tuple, a 3-tuple, a 4-tuple, but not for a 5-tuple or up. Why? The 4-tuple cons pulled its weight, the 5-tuple didn't. For every special form you add to Hoon's fixed, limited set, you're imposing a cost on anyone who has to learn Hoon.
I hope you can see the UI advantage to functional programming in an environment of controlled evaluation complexity. IMHO, too much of FP is a world in which every program is its own language.
Which one is right? Actually, I feel it's possible that the only real language is K, and the rest of us are just phonies.
At least, until you start to define functions, whereby a line now says "something happens according to a definition elsewhere which is just invoked here".
Oh wait, that's also what a piece of syntax or macro also says, pretty much.
> I hope you can see the UI advantage to functional programming in an environment of controlled evaluation complexity
What I do know is that big programs written in C can be pretty difficult to understand, even though most of their bulk hardly uses much more than what's covered by the operator precedence table on page 53 of Kernighan and Ritchie, 2nd ed. A lot of that has to do with the fact that foo_bar(ptr_widget, 42, gadget_struct) can mean anything whatsoever, even though it isn't a special operator or macro call. The small assurance that three word-sized chunks are passed somewhere by value doesn't actually buy a whole lot of understanding.
(Brain* * * * * * has a nice, small, inextensible set of operators. Does it help?)
The dictionary you have to comprehend is not that of the language, but of the language, plus that of the code base written in it. What good is it if some language has 20 entities rather than 30, if the code base you're grappling with has 10,000.
Macros aren't functions. A function call is one thing. A macro can expand to arbitrary code. This code may contain function calls or other symbols.
Before you can even interpret these symbols, you have to expand the macros in your head. This is two steps, rather than one. Expanding is not tracing. This extra step is why whoever is reading your code is so easily tempted to give up and writes it again herself, with her own macro language.
I was not comparing FP to C. If you look at actual Hoon code, it's pretty comparable in size to other functional languages, and also in clarity once you learn to read it. Obviously C is much fatter and harder to understand (and has macros, of course).
Only if you're willing to insert "<qualifier> typed". Without at least one <qualifier>, the debate is meaningless: every party assumes that unqualified "typed" means "<qualified> type" for some different choice of <qualified> and then it's just about asserting word semantics.
> A "dynamic" type system isn't actually a type system.
"<foo-berly> type" isn't "type". Use my definition, god damn it! "Type" really refers to "<bar-istic> type".
(Dynamic is scary, so scare quotes are fitting, by the way).
1. Has this ever actually happened? I'd be quite disturbed by that. We're more than happy to have people learning about Urbit, although we're not particularly active on social media.
2. Curtis is certainly controversial. None of us share his views, but we do enjoy working together. I'd like to think we live in a world where people who don't agree can still collaborate professionally.
3. Learning Hoon is much easier than it looks. In my experience it's absolutely designed for usability — although it doesn't appear that way at first. We're actively working to better explain how Hoon works and teach people the language. It would be totally against our interests to do otherwise. I do think our new docs do a much better job: http://urbit.org/docs
4. There is a company behind Urbit, but it's not technically possible for us to control the project in the long term. Urbit is definitely not behind any kind of 'firewall' — it's designed to be owned by the community.
I'd encourage you to check out the posts on our beliefs and principles , address space  and company .
0 - http://urbit.org/posts/principles/
1 - http://urbit.org/posts/address-space/
2 - http://urbit.org/posts/company/
If you look at Bitcoin and the blockchain as a purely technical achievement, it's marvelous and incredible, a testament to human ingenuity. The problem is that money is not a purely technical problem, and people involved in Bitcoin who ignore that open themselves to a whole lot of relearning, like when people who are given the ability to steal a whole lot of money end up stealing a whole lot of money, like at ShapeShift. Banks have been dealing with these kinds of problems for decades (or, depending on how you look at it, hundreds if not thousands of years). But if you only concern yourself with the technical aspects of Bitcoin, not the social or political aspects, you can miss things that seem obvious with the benefit of hindsight.
And the software that people creates has implications that range far beyond technical questions. A great example of how we can encode assumptions that come from our beliefs, our experiences, who we are and where we happened to be born into software without even realizing that we've done so is the fantastic essay "Falsehoods Programmers Believe About Names." Reading that should be a real eye-opener about how, without intending to, programmers can end up writing software that is built for people Like Them and is unaccomodating to people who Aren't Like Them.
Most of the talk about his personal views here are about his views on race. It shouldn't be a huge surprise to anyone that the sort of people who are at Hacker News are likely more white than the rest of America, much less the world. As are a lot of the people writing software in use today. Sometimes that means that Google Photos categorizes someone's pictures of himself and his girlfriend as "gorillas", which is the sort of error one imagines Google would be a lot less likely to make if they had more African-Americans working on their code and testing their software before release. Or machine learning algorithms that courts use to predict recidivism rates in determining sentencing have much higher false positive rates for African-Americans than whites.
And making this place more welcoming to Curtis Yarvin by focusing discussion on the technical merits of Urbit and ignoring his personal views is a signal to a lot of other people about what we as a community value and what we don't. And I think it's a bad signal, because it alienates people with valuable and important viewpoints that we ought to be finding ways to be more open to, not less.
So if someone working on an open source project were to blog, completely separately from the open source project, their personal views on, say, abortion you'd be OK with it if whenever we tried to have a discussion about that project people started discussing that contributor's views on abortion?
If not, what is the criteria for deciding what kind of unrelated personal views are OK to bring up in technical discussions?
For instance, instead of talking about Urbit, we're instead mired in the finer points of one guy's murky theories on sociology.
This is not an interesting discussion on Hacker News! Racists are not exactly a rare breed, nor do the outspoken ones ever (intentional Sith absolute) bring anything interesting to the discussion.
White like Satya Nadella and Sundar Pichai, you mean?
Google is 60% white. Facebook is 55%. Microsoft is 59%. USA is 63%. Do you have any evidence that HN is whiter than Google and Facebook? Why not say what you really mean, namely that there are too many Asians?
Or machine learning algorithms that courts use to predict recidivism rates in determining sentencing have much higher false positive rates for African-Americans than whites.
Not according to the R script written by the very authors of the piece you cite. That script is unable to find statistically significant evidence of bias. They found very strong evidence (p < 0.001) that the statistical model is highly effective, albeit imperfectly calibrated .
It's silly to say that by focusing on a technology project and ignoring the people involved, we alienate people. Where I work we have similar views - "meritocracy" is one of our core values, not the dirty word it's become in the valley. As the only member of my race at this company this makes me feel welcome - I'm as valuable as the things I build, who cares about my race?
 This means that higher score means higher recidivism rate, but a 60% score doesn't necessarily mean 60% recidivism probability. Probably should have run isotonic regression or something like that. https://en.wikipedia.org/wiki/Isotonic_regression
I don't know if you're doing this (again and again) intentionally or not, but racial bias is not statistical bias!
> It's silly to say that by focusing on a technology project and ignoring the people involved, we alienate people.
How do you know it's silly? Have you done any research on that? Because people who have actually done some research have come to the conclusion that it is your assumption that is silly.
> "meritocracy" is one of our core values
Meritocracy is not a value (or not a distinguishing value). It's what every (long surviving) system believes itself to be. The term is ironic and generally means "a system that deludes itself about its own fairness". The term was coined as a satirical joke, and has no other well-defined meaning.
: Unless your statistics includes every possibly pertinent variable, or you manage to prove total independence of your model's variables from all other variables.
You can't have one without the other.
If people want to a clean state restart of the world of computing without an infestation of corporations they'll be against attempts to shun him.
But I was referring to the fact that nobody else is solving this specific problem. You either stay happy with your collection of walled gardens or you wait to see if he can unbreak the internet.
In fact in this case, the work goes ahead anyway. Perhaps you end up using it in ten years, or perhaps you don't. But neither of us gain anything from this argument at the present time.
> If you're interested in that approach, I'd encourage you to check out sandstorm.io. This solves the problem for applications like a blog, email, or gitlab. What it doesn't do is make decentralized applications easier to build.
If you'd prefer this not to be the case, please outline what restrictions on free speech you'd like emplaced so that people would not be able to discuss his views.
He's incapable of leading a project because you're unwilling to control yourself?
Why continuously bring it up? We've already had this discussion numerous times.
Is there like an intermediate-level overview of Curtis's offensive beliefs, with a glossary and index? I'd be surprised if nobody's assembled one; it could make the ad hominems so much more effective.
(NB - the article refers to Yarvin as "Mencius Moldbug", his nom de plume for political ranting)
 - http://slatestarcodex.com/2013/03/03/reactionary-philosophy-...
Wow, really? I'd consider that worse than removing comments.
I don't see why that would make people from those groups feel unwelcome. If anything I would expect people from the groups that he says were genetically not as good as slaves to be the ones who would feel unwelcome. The implication is that they are weaker or less resilient.
Was it something like "yeah it is a functional system... hey have I mentioned how much potential you have for whenever you feel like dedicating your life to slavery?"
...or was it just the guy rambling on a blog of his under a pen name?
It's pretty obvious to anyone that the guy's views are obscenely offensive, but if the guy is strictly professional when it comes to Urbit, treats everyone with the same respect and works just fine along with many people that despise his views, how are the project's goals tainted?
Is it? From what I've seen so far all the controversy has come from taking statements out of context.
However, I take your main point that it doesn't need to impact on Urbit.
As much as some people like to pretend it's only about tech, tech is made by people and it requires them to interact with each other, and that can never be completely confined to code.
While talking to Urbit contributors about Urbit?
And in fact, every Urbit contributor in this thread who's mentioned this has also heard about Yarvin's political views, and not from this thread. It appears to me there's already a kind of self-selection process in Urbit contributors, towards those who are comfortable tolerating his garbage. And that's exactly the problem.
I have also toyed around with Urbit, and have (in a sense) made minor contributions. Feel free to draw incorrect inferences regarding my opinion of Yarvin's political writing.
I mean, I guess you're technically correct: If nothing else, the impact of his views on the project is that it results in the exclusion of people who choose to exclude themselves from projects created by "the wrong people".
But of course that's trivially true of all projects, so why do you think it's such a problem in this particular case? If you answer "because his views are really bad" while acknowledging that they otherwise have no direct bearing on the technology, you're basically saying "because he's really unpopular".
I have no love of Yarvin's politics, but that sort of cure is worse than the disease.
I don't acknowledge that his views have no direct bearing on the technology, either, and that's tied up in my first point. We design things for ourselves, for the most part, so by excluding (perhaps inadvertently) people with different perspectives on life, we lose out on valuable input.
I think we agree that Urbit would benefit from a larger, more diverse user/contributor base. What wouldn't? We're just ascribing agency in different places. I view the claim that Yarvin is excluding people as a sort of rhetorical sleight of hand. What he's actually done is 1) publish some really unpopular opinions, and 2) build Urbit. It is entirely possible to evaluate 2 on its own merits. So I'm disappointed to see so many people write it off for other IMO less relevant reasons.
It reminds me a bit of a "Christian-friendly" Linux distro I once saw that omitted software written by known homosexuals. Would you also claim that the gay programmers were (perhaps inadvertently) excluding a subset of Christians? I suspect most people would agree in this case that agents of exclusion are the ones actually performing the exclusive act, rather than ones who happened to be "the wrong people" from another group's point of view.
: This is true even in the presence of a strong political influence on the technology. I honestly don't see much of a connection between Urbit and Moldbug's politics, but then the latter never made much sense to me, so maybe I'm missing something. If there are politically objectionable aspects to the software, then by all means object! But plain old guilt by association is a weak argument in any context, doubly so in a technical one.
Is this supposed to be in his favor?
EDIT: For clarity
You're putting words in 5F36B5F62640's mouth.
And to be absolutely honest, anybody reading this can see that you're the one attempting to make people feel unwelcome in this community.
Edit: The commenter has now upgraded his comment but the original with added emphasis is quoted above.
Rather than attacking me personally, is there something I missed or was incorrect about?
I'm not attacking you personally, nor am I speaking to you personally. I am just pointing out to anybody reading this, that you just tried to smear somebody.
Of course, whether you did so on purpose is another matter.
To restate, then:
"Wait, so your argument is that only Native Americans would feel unwelcome in this community?
Is this supposed to be in his favor?"
I appreciate your dedication to accuracy, and I must assume this satisfies your complaint.
Yes, that is no longer accusatory; and it is correct: there are other sets of people that would no doubt feel unwelcome in such a community.
I think in a practical sense their fear is overblown as 'Code is law'. However people generally make decisions based on consensus reality.
I'm curious, do you take that to speak well or ill about the ethnic groups in question?
Can you please explain to me what a "non-lambda interpreter" is and why it matters?
It matters because gensyms suck. More generally, if you are building a two-layered system in which a compiler targets the interpreter, symbols, functions, and scopes are concepts that belong in the high-level language, not the low-level interpreter. (I think Shen is one example of a typed Lisp that targets an untyped Lisp, but obviously I know nothing about Lisp.)
So the lambda calculus is a classic layer violation.
Where I went to school in operating systems, which was Brown and Berkeley, we were taught to avoid layer violations and always separate mechanism from policy. Not sure what Lisp people are or were taught -- honestly, there were not a lot of them left, even in the '90s -- but it never seemed to include this.
I always look at a stateful Lisp machine, or Emacs, or whatever, and see a giant structureless blob of symbols. That said, this is probably a totally unjustified prejudice on my part, and at this point I really have no excuse except lack of time for refusing to learn more.
> It matters because gensyms suck.
That makes no sense. The lambda calculus has nothing to do with symbols. Lisp introduced the concept of symbols, but Lisp and the Lambda Calculus are not the same thing.
> obviously I know nothing about Lisp
That is indeed becoming rather obvious.
For example, given "λx.x+1" then "(λx.x+1)(z) => z+1". This reduction process is formally defined by the beta reduction rule, which says that "(λx.t)s" evaluates to "t[x:=s]".
"t[x:=s]" means "substitute the value s for the symbol x in expression t". E.g., x+1[x:=5] => 5+1
If by symbol you mean something different than variable, then I might agree, but the heart of lambda calculus is the rule set for lambda abstraction, application, beta reduction. Due to alpha equivalence you could say that lambda calculus is agnostic to symbols however. I suppose it depends on what you mean. (Lambda calculus is defined in terms of capture avoiding substitutions.)
Well, the real question is what Curtis means by symbol, as the answer he gave is rather cryptic. But since he specifically raised the issue of "gensyms", that seems to be a reference to a standard Lisp function that generates symbols, a first-class Lisp data structure, at run-time or, more usually, at macro-expansion time. Since Curtis has complained about macros in the past, I assumed this was what he was referring to. "Symbols" that exist only in the textual representation of the language and not as first-class data types are usually called "identifiers" rather than symbols precisely to avoid this sort of confusion.
In any case, it is an elementary exercise to define a formal computational system equivalent to the lambda calculus that uses integers rather than identifiers. Instead of λx.x you write λn where n is an integer. 0 refers to the value bound by the innermost scope, 1 to the value bound by the next outer scope, and so on. So, for example, λx.λy.x becomes λλ1. But of course, no one does this because it's completely pointless.
As you may remember, I'm really not the person to answer that question sufficiently. But I would like to see you and Curtis have this out at greater length.
Sorry, I didn't recognize your handle. (And just for the record, I wasn't trying to start an argument, just asking a question.)
> it's my fault
> I'm really not the person to answer that question sufficiently.
> But I would like to see you and Curtis have this out at greater length.
Well, we're already having something out in another branch of this thread (https://news.ycombinator.com/item?id=11819810). But it's rather hard to get a straight answer out of him. He has this weird theory that the only way to avoid being sucked into the Lisp Failure Vortex is to not learn Lisp. But at the same time he professes his intentional ignorance of Lisp he also takes these weird pot-shots at it. That is, alas, not a good foundation for a constructive discussion, which is why I was hoping (and continue to hope) that you (or someone) might be able to explain it to me.
No problem. Just, you know, hi! I'm actually happy to pick this thread up. I remember really enjoying the last discussion.
As (I think) we discussed last time I basically have two views:
- Urbit actually works. Like, I actually build stuff on top of it. That's really the layer I'm most interested in. If it were built in Lisp, well, I probably wouldn't know the difference. I'm not sure I'm able to understand the implicit criticism at the user level.
- Shaking off the cruft of existing systems is actually pretty hard. I don't have as much experience with this as a programmer as Curtis does, but it's a problem near and dear to me. It's very difficult to think clearly inside of someone else's intellectual framework. So, maybe Hoon looks like a bad Lisp variant today. What does it look like in 50 years? Maybe it's dead, maybe it's everywhere. I'm not sure we can actually make this judgement for certain. That is: whether Nock / Hoon is definitively better or worse in terms of its long-term adoption and performance.
What Nock does seem to unlock is incredible amount of enthusiasm. The feeling of disillusionment can easily be converted into excitement. I've seen this done by Urbit — and that's pretty difficult to do. My intuition is that Lisp suffers from the opposite: the feeling that breaking from its history is impossible.
Either way I'm serious about getting you two to have this out in some kind of organized way. Ideally, on Urbit somehow.
Very happy to hear that.
> I'm not sure I'm able to understand the implicit criticism at the user level.
Let me make the criticism explicit then: inventing a new language is not hard. People do it all the time. It's an elementary exercise. However, inventing a good new language, i.e. one that actually advances the state of the art and provides a substantial advantage over existing languages -- that is very hard. That happens very rarely, probably less than a dozen times in the history of computing.
Although I have never heard Curtis say so explicitly, the rhetoric surrounding Urbit strongly implies that Nock and Hoon are languages of the second sort, that is, that they provide some benefit that existing languages lack, and without which developing Urbit would be substantially more difficult or even impossible. My question for the last four years has been: what is that benefit? Do Nock and Hoon really advance the state of the art in programming language design, or is their sole purpose to be the Shiny New Thing that gets people excited? Because if it's the latter, that does not bode well for Urbit's long-term prospects. Nothing gets to be the Shiny New Thing forever.
> It's very difficult to think clearly inside of someone else's intellectual framework.
That may be true, but do you not see the irony here? You didn't invent Nock/Hoon, Curtis did. So if you are thinking clearly, then you are doing it in someone else's intellectual framework, precisely the thing you say is very difficult.
> What Nock does seem to unlock is incredible amount of enthusiasm.
That I don't doubt. Curtis is a master marketeer. But Donald Trump is unlocking an incredible amount of enthusiasm too. Just because a lot of people get enthusiastic about something doesn't necessarily mean it's a good idea.
The last time anyone built a computer that was typed all the way down to the hardware was (ironically) Lisp machines.
Why? What has he done to anyone? Do his designs have built-in genome detectors?
Or are you encouraging us all to join in as collective arbiters of wrong-think? Doesn't that seem a little too Maoist Cultural Revolution to you?
> People are voicing their disagreements with his professed viewpoints,
Voicing their disagreements with his pseudonymous comments from a completely different non-urbit context. I suspect (but I don't know) that if he wanted the public's perspective on his non-conformant political thought to skew the public's views on his technical design work, he wouldn't have used a pseudonym in the first place.
> yet you are using that cliche to dismiss them without addressing their viewpoints.
Quite the opposite. I am using that cliche, in a question, to ask if that is what the parent is asking (inciting?) us to do: arbite non-conformist thought.
The viewpoint that (here) I intentionally don't address can be summarized as: "I heard the designer wrote something that I disagree with elsewhere, under a pseudonym - more than once! I hereby dismiss anything he has to say on any matter." That's like saying: "Hitler lover strawberries, so we must all agree to avoid them."
> This does not lead to a vigorous discussion in the marketplace of ideas.
I agree, but... what marketplace of ideas? The aforementioned comments have nothing to do with the merits (or lack thereof) of urbit. A public shaming of a heretic is not a marketplace of ideas. Maybe the guy doesn't pay his taxes. Maybe he's behind on child support. Maybe he eats puppies for breakfast. I don't know. I also don't know that it really matters, as regards the merits (or lack thereof) of his engineering design.
And, I'm sorry. It seems that I have contributed to the thread going even further afield than it already had. I shouldn't have said anything to begin with...
For some, this means that they don't want to be professionally or socially associated with someone who thinks some ethnic groups make genetically good slaves. People can vigorously discuss whether his writings crossed lines of acceptable behavior.
However, you're also free to discuss the technical details as much as you want! If that's what's relevant to you, that's perfectly acceptable as well, and it doesn't require you to defend his other writings.
After I came across Urbit, I heard allegations of Yarvin's writings under his pseudonyms. I went and found his writings - and to the degree I understood it - I didn't agree with the conclusions. At the same time, I found a lot of the quoted material that had allowed me to find his writing in the first place was taken out of context.
But more importantly -- I didn't see even a hint of bad behavior in any of the developer's group discussion. I'm very uncomfortable with the idea of taking what a person does "after hours" and putting it on display in the public square. If he were running some sort of "Boys From Brazil" project after hours, I'd probably feel differently, but that's not what he appears to be doing.
Just to take it to absurdity, and I'm not claiming Moldbug is a member of the Nazi party, but society would not collapse if we shunned people who espoused, for example, the ideals of Hitler and the Nazi party.
-- Every post about Curtis Yarvin, ever.
Sorry for knee-jerking, but there is really no basis for equating Mencius Moldbug to a Nazi, and I think it hurts the discussion when you do! I have read some of the texts in question, on the insistence of people who say I should disavow this person who I consider to be a real pal. I read the post "Why I am not a White Nationalist" and I don't know how anyone without an agenda can come to the conclusion that this is a person with hate in his bones.
Since you just misconstrued what I said, I was clearly unsuccessful.
P.S. the nazi party was a frequent practitioner of this shunning policy.
But when people advocating it to an aggressive level-extensively campaigning the rejection of a certain person at social scale, this is dangerous and smells like politics, and was exactly the way how hitler shunned the jews.
Now, ad hominems aren't "good"... but if I work on it, I get lumped into the similar group. Just no.
"Just no", indeed. This is tremendously faulty thinking; damning someone and their entire endeavor, bypassing any and all rationality by your own admission,
not because they've committed some great evil,
not based on such a trivial concerns as the merits of the project,
...but because they have thoughts outside of that scope you don't particularly like.
Ad hominems are not bad out of some mystical universal constant, they're bad because they necessarily short circuit rationality by appealing to emotion, while saying nothing of actual substance. They are antirational and as such, as I put on my Sith Lord helmet, always absolutely bad.
Okay. He's a racist. And? Unless he's making a racial gating API, or otherwise taking evil actions, it doesn't even begin to have anything to do with the project. This problem that you mention, "getting lumped into a similar group", is entirely self perpetuating.
The statement "But he's a racist!" has zero professional value. The moment (the royal) you stops making such statements, the moment they cease to have value.
2. The author had an alt-right blog under a pseudonym. Some people think that makes him literally a Nazi. I don't agree with, er, basically any of his views, but I do enjoy reading his posts simply because they are fun to read. They aren't racist, except in the non-PC way, and has been nothing but nice when interacting with his online. None of those views bleed into Urbit, so I really don't care what political views Yarvin holds on his own.
3. Saying "only dedicated people would learn it" is just being mean. Hoon is unique from Lisp, and isn't even intentionally hard to learn - it's just different from nearly all other languages, because it compiles down to Nock, and builds primitives that make sense in the context of running on that VM. It's strongly typed, unlike Lisp, along with being pure. It's analogous to Lisp that you write code that is turned directly into an AST, but quite different. The part that is "completely foreign" is the weird syntax, which looks much harder to learn than it is, which they've recently admitted is too hardcore for newbs: They added keyword style in the last Hoon revision, so that you can code in nearly normal looking syntax, if you want. `:if(a b c)` instead of `?:(a b c)`.
Nock is kinda a Lisp variant, but there is a good reason behind having a small, perfect VM that never changes with some nice features, which are iterated in the docs and LambdaConf slides.
4. Urbit is open-source. https://github.com/urbit/urbit. If you read the website, they pledged a lot of the galaxies and Urbit namespace to what will become a non-profit spinoff. Not only that, but you can fork the entire network if Tlon turns out to be Evil Company Inc., by changing the hard-coded galaxy keys. I'll admit that there is a big difference between "open source" and actually being developed in the open, and hopefully they will open up about where they want to go with Urbit more, but it's by no means behind a company firewall.
Tell us about your experience and urbit thoughts.
I like a lot of the ideas, both on the merit of being weird and fun and genuinely being better.
The view of having an operating system that has:
* a built-in identity system and PKI
* a typed and versioned file system
* a typed command line
* all apps being state machines (both being able to be upgrades over the air and operating based entirely on RPC primitives)
* having the entire thing be a function on an atomically updated event log that is crash-proof, upgradable without a restart, and replayable
is just great, even if it's not really usable yet. I'm not sure how feasible the entire project is, because holy hell is it ambitious, but I really hope they do well.
Playing around with Hoon is actually pretty nice. Reading it as a beginner is scary as hell due to all the weird runes, but learning it is nowhere as hard as it looks. It's vaguely lisp-like, pure and side-effect free, strongly typed, and easy to use. I've been doing codegolf challenges in it for fun on my free time.
It's just like it's like reading the Lord of the Rings or the Bible. There is this book. It is really important to its fandom. It's affected everything else. It has massive scale and scope. Your feeling is that it's not going to be a light read.
So far I'm intimidated into skulking around the edges but hopefully not for long.
You know even if we only got an PKI going that would be revolutionary. The 'modern' world hasn't a hope in hell of achieving that any time this century.
You don't need an invite to be able to play around with it, you'll just have to use a comet (which is the functionally same, but you have an uglier name). If you ask in :talk they'd probably send you a planet ticket, too.
You can say that since men have a statistically higher muscle density, they are genetically better slaves than women are. That does not mean that I'm advocating we enslave all men, or that slavery is anything other than abhorrent.
There's a lot of rationalization going on here for people that usually are quite capable of critical thinking.
Everyone focuses on something, if you want to extend your argument he should have also focused on diet, type of exercise, type of housing slaves are kept in, etc.
Focusing on every single factor that could possibly effect slavery would be an endeavor probably greater than the average lifetime.
Saying that some group of people or another would likely make better slaves than others is no different than saying that a certain group is more likely to be poor than another or be in jail than another. It may be considered in bad taste to discuss, but it isn't morally wrong to discuss.
It is simply remarking on what is, not what should be.
I have no idea whether genetics is a cause, I doubt it, but it is a perfectly reasonable hypothesis and thinking it is true does not make one racist.
1. (Least bad, though still racist/bad) Believing that other ethnic groups are "better" or "superior" rather than "different". So if you honestly believed that the ethnic groups are inferior due to their genetic traits (I do not consider being predisposed to slavery, jail, being poor etc something to consider a group inferior for especially since it wouldn't be that clear cut anyway. It'd actually be something like "predisposed to aggressive behavior, which leads to jail" or something anyway).
In the case of hard evidence of a genetic predisposition to something directly negative it is possible for this opinion to be technically correct but still racist and morally wrong.
2. (Worse than 1, implies 1) Believing that actions should be taken to the detriment of the "inferior" ethnic groups and/or benefit of the "superior" ethnic groups. This would include things like enslaving people, not hiring them, promoting/demoting people based on ethnic group etc. There are a lot of items in this list including everything America did to the detriment of the Africans.
3. (worse than 2, implies 1 and 2) Actually carrying out actions or encouraging others to carry out actions that are to the detriment and/or benefit on a particular ethnic group.
In my case, I'd be willing to work with a 1. but would respect them less than otherwise. A number 2. would be dicey, i -might- be able to work with them if they don't talk about it and aren't going around regularly talking about it to others but it would drive me crazy. I would not agree with censoring/banning people from number 2. I would quit/not hire/stay away from someone with number 3 and would support banning them from communities though still not censorship (I am hardcore against censorship).
This response applies to the previous line about being the intelligence of cattle as well, now that i've given it more thought.
Intelligence can be measured so more context would be needed here. In this hypothetical scenario has one group of humans either fallen through some kind of circumstance to a lower level of intelligence(not knowledge) or another has gained significantly more intelligence through some means? In that case they should probably be considered separate species not separate races so we're in a whole new ballgame.
Either way, when "humans" are potentially that different (there's no defensible claim today that any group of humans is significantly less intelligent than any other really) this issue gets very hairy.
Someone thinking that today would definitely be racist.
They don't seem that antagonistic here. Do you have any evidence that supports your point?
2. Where [breitbart article linked doesn't really get into it beyond other people saying it]?
3. I do think Hoon is a bit too complex
4. If the company dies the project doesn't die. Curtis has been working on this for years from what I've read
Oh, good. This again. Curtis has stated publicly, "I am not an 'outspoken advocate for slavery,' a racist, a sexist or a fascist." See: https://firstname.lastname@example.org/why-you-should-come-to-lam...
I've no idea whether Spaniards and Englishmen really did find Indians unfit for slavery but I guess the argument that is being made is that more of them might have been kept alive if they were able to provide greater economic value to their conquerors. Sick, I know.
Agree that it's not an opinion fit to be voiced in modern society, however, it doesn't seem to be the opinion that people are trying to cast it under.
Oh, well, that makes everything better.
Being enslaved is an awful fate but it is a hell of a lot better than being slaughtered because your oppressors can't find a use for you.
However, I don't think misconstruing his words is a good attack. The dust eventually settles.
Take a look at this http://unqualified-reservations.blogspot.co.uk/2009/07/why-c... and see whether you find it plausible to say that the author is not an outspoken advocate for slavery.
The passage most frequently cited as evidence of this charge is:
Thus, Spaniards and Englishmen in the Americas in the 17th and earlier centuries, whose sense of political correctness was negligible, found that Africans tended to make good slaves and Indians did not. This broad pattern of observation is most parsimoniously explained by genetic differences.
A charitable reading of this, in my mind, goes:
Some slavers had an opinion about who made good slaves and who didn't. If one wanted to rationalize a basis for that opinion, which historically existed, the easiest/laziest answer would be genetic traits common to the populations in question
Check the definition of "parsimonious" and assume the author used it on purpose.
The author seems to be positing the "easiest" explanation for why a particular opinion took hold among the slavers. Personally, my parsimonious explanation would be groupthink/received wisdom. Which, if it had to have a "legit" origin, was probably a multitude of factors such as you describe.
But, I'm not the author, and was just trying to explain why I don't think that passage is the heinous smoking gun that so many people think it is.
Fairly early on, he argues for a more modest proposition:
"A society is richer if each individual in it has the right to bind her future actions by agreed obligations, in return for which others may exchange other consideration. [...] we are almost all the way to Carlyle on slavery. We have not agreed that a man can be born a slave, but we agree that he can sell himself into slavery. That is: he can sign a contract with a master in which the slave agrees unconditionally to obey and work for the master, and the master agrees unconditionally to protect and support the slave."
OK, but that's only voluntary slavery. What next?
"It is only a short step from seeing the State as an enforcer of voluntary and binding obligations, to an enforcer of involuntary and arbitrary obligations. No society can possibly exist without uncontracted obligations."
He goes on to give (not being allowed to trespass on) inherited property and (the obligations that come with) family relationships as examples of uncontracted obligations.
OK, so Moldbug is in favour of voluntary slavery and thinks that sometimes it's good for the state to enforce involuntarily acquired obligations. We're still not all the way to actual slavery, of course; it depends on what sort of involuntarily acquired obligations the state should be enforcing.
"Indeed, the definition of family in most times and places has included slaves. [...] The relationship of master and slave is a natural human relationship: that of patron and client."
So now he tells us that slavery is natural and suggests (though he doesn't exactly say it) we should think of it as an aspect of family. He goes on to discuss slavery (being bound to one person), serfdom (being bound to a patch of land and its owners), and ordinary government (being bound to a much larger patch of land and its owners -- it seems to me like there are some super-important differences between serfdom and citizenship, but never mind), and concludes from how widespread these systems are:
"This is a pretty good clue that this structure is one to which humans are biologically adapted."
OK, so he says slavery is natural and humans are biologically adapted to it. Now what?
"Not all humans are born the same, of course, and the innate character and intelligence of some is more suited to mastery than slavery. For others, it is more suited to slavery."
(It is interesting to put this alongside his protestations that when he says black people are less intelligent than white people, of course he isn't at all making any sort of value judgement or saying that white people are better, dear me no.)
OK. So he says slavery is natural, humans are biologically adapted to it, and some people's inborn characteristics make them natural slaves. What next?
"These characteristics can be expected to group differently in human populations of different origins. [...] Africans tended to make good slaves and Indians did not. This broad pattern of observation is most parsimoniously explained by genetic differences."
So now we see the passage you quoted in its context. He says: Slavery is natural, humans are biologically adapted to it, some people's inborn characteristics make them natural slaves, and these characteristics are distributed differently in different populations; for instance, at least a few hundred years ago, Africans made good slaves, and this is probably for genetic reasons.
(But oh deary deary me no, when he says there are statistical differences in certain psychological characteristics between races, he doesn't mean any sort of value judgement by it. Only that some races are naturally suited to slavery and others to mastery, that's all. Who could possibly object to that?)
"Conversely, the subject-government relationship easily becomes dysfunctional for clients who are natural slaves, ie, are not capable of guiding themselves to live in a human and humane manner. [...] If all long-term welfare cases were transferred from Washington to the authority of genuine, truly charitable nonprofits, for example, their new human supervisors could intervene on a personal, discretionary basis to compel them to get their acts together. This would be a step toward humanity in our society - and also a step toward slavery."
So: he says slavery is natural, some people are natural slaves, those people won't flourish as free citizens; "all long-term welfare cases" are in this category; they should become, in effect, slaves -- for their own good, of course! -- and this would be an improvement.
(But no, of course he isn't an outspoken advocate of slavery. How could anyone think such a thing?)
As for the sarcasm: when someone (1) talks at length about how natural slavery is and how some people are naturally fitted for slavery, and calls for all long-term government benefit recipients to be made into slaves, and (2) insinuates (without quite saying it explicitly) that the average black person really ought to be a slave because that's what their inborn character and intelligence make best for them, and then (1') gets indignant at being called an advocate of slavery and (2') insists, in tones of offended innocence, that if anyone thinks them racist for taking about mental differences between black and white people, the problem is all theirs for being so "IQist" ... well, I really think some amount of sarcasm is called for.
Firstly, this isn't about what sort of person Yarvin is (jerk or not-jerk), it's about what he's done in the specific instance we're talking about.
Secondly, neither advocating slavery and oppression nor being sarcastic about a stranger on the internet is the same thing as being a jerk.
So it's more like "The other guy is being grossly dishonest about the terrible horrible no good very bad things he has said, therefore I'm justified in being quite vigorous in pointing out the dishonesty of what he's saying now and the horribleness of the things he said before".
FWIW I doubt Yarvin is a jerk. I expect he's pleasant and interesting company and kind to strangers and animals. Being a jerk is just one of many ways to go wrong, and it is not what I am claiming Yarvin has done. If all the bad things I say about Yarvin and more are true, and if those are not just one-off occurrences but a matter of settled character, then the consequence isn't that he's a jerk, it's more that he's a fascist or something. I happen to think I'm not a jerk either, but at least you're in the right ball-park there: if all the bad things you say about me and more are true, and if that is a matter of settled character rather than a one-off, then indeed I'm a jerk :-).
[EDITED for clarity here and there; no changes to meaning.]
If you've read that and come to the conclusion that the author is a racist, I can explain what you've missed in one word: intent.
The author is exploring ideas. The early parts of the blog post set this exploratory tone quite clearly by framing Carlyle not as someone with absolute moral authority, but as an original thinker, a counterbalance to his time and our time. By exploring Carlyle's ideas the idea is to examine commonly held assumptions. It's an intellectual exercise, and a healthy one at that.
As for the 'racist' comments, I don't think they're racist. The 'racist' argument being made can be summarised as... 'The idea that genetic diversity is equally balanced across all races has not been proven, it's an assumption made to further a political cause. However, even if there are genetic traits more closely associated with one race over the others, it does not make those other races inferior. This line of reasoning exposes another form of oppression, one based on intellect rather than genetics, where the right to rule over others is determined by perceived intellectual superiority.'
To me, that's not racist. I do believe there are genetic dispositions amongst people of different backgrounds. For example, look at average height. If I go to Asia or South America and stand next to people I meet there, I would tend to be taller. Do I think I'm a better person than them because I'm taller? Fuck no. Can you appreciate this point of view?
And yes, he frames what he says as an exploration of Carlyle's ideas, but he's not just saying "Carlyle said this; isn't that interesting"; he's presenting his own opinions too.
As for whether believing that white people are (statistically, on balance) cleverer than black people makes you a "racist" -- which, again, was not what I was referring to above: it's really a question about the definition of "racist", and disputes over definitions tend to be unfruitful. For what it's worth, I would not call anyone a racist merely for believing that proposition.
From what I saw, that's exactly what I think he's saying, perhaps I missed something you saw, perhaps I didn't. It seems the conversation has pretty much run its course now, so shall we agree to disagree?
But, I hope that I have misunderstood your writing on those subjects.
I've met stupid people and smart people and a whole lot of people who were stupid one way and smart another, but I've never met anyone with an IQ and I don't expect I ever will.
But if he's talking about what happened to groups of people, isn't it correct then to talk about characteristics of groups of people?
Normally, I would stay away from stereotypes and generalizations, and yet aggregate characteristics are useful about talking about what happens to groups of people.
The real trouble comes when you try to apply an aggregate observation to the individual. You can't. That's the racist bit.
Edit: Another problem is, and what we've seen here, is that observations or opinions about groups are often used to evaluate a member of said group when met. Curse our brains for taking shortcuts.
Also, I probably should have asked this upfront - are you up in arms about the construct of IQ, or the suggestion that that a group of people might differ in a particular characteristic?
To answer your question, I am upset that someone as intelligent and otherwise interesting as the urbit fellow should suffer from the logic-disease of racism. It's like how Konrad Zuse is always neglected because he worked for the Nazis, so "fuck him", eh?
Generalizations can be useful, "race" typically isn't. "IQ" can be a useful shorthand, but if you take it too seriously... Let's just say that Mensa is a group of people who are almost, but not quite, as intelligent as they like to think they are.
To paraphrase Deckard, '"IQ" is like any other concept, it's either a benefit or a hazard. If it's a benefit it's not my problem.'
What the research addressed was the IQ bell curves among various groups. What the research didn't address was correlation between IQ scores, intelligence, and general life satisfaction, difference between "academic smarts" and "street smarts", presence of various impurities among the ethnic groups, etc.
I would ask, are these concepts truly useful?
The reasons for which is a matter of some debate, but the fact will resist any and all efforts to change it by way of insulting its speaker.
Were it someone relating this in a less analytical way, that sentence would read "People with higher IQs are not necessarily 'superior'". Which is also true, as it happens.
For anyone interested in the potential reasons: one of the most posited ones is that the creators of the tests are inherently biased. i.e. if someone creating an IQ test is a white male, chances are white males will have an advantage on the test.
This has some degree of experimental evidence behind it, I remember in one of my psych classes we learned about a study where test creators tried to create tests [and succeeded] where certain races or locales would score higher [primarily by having people in those places or people of that race create the tests]. It's very hard to create a "general intelligence" test that isn't biased in some fashion [and many say it's impossible]
But why and how would white males consistently create culturally biased tests which advantage East Asians?
> It's very hard to create a "general intelligence" test that isn't biased in some fashion [and many say it's impossible]
Tests of reaction time are probably not culturally biased: https://en.wikipedia.org/wiki/Mental_chronometry#Mental_chro...
Its the sum of these views, writings, and his own AMA that steered me clear of his stuff. Mainly, if he treats fellow members of the community like this, I'm sure not going to have a good fit in ... wherever he works on.
What a monster!
You can't really make that non-racist by adding "I have progressive friends and quite like puppies"
If I brought up the abortion issue in every biotech thread I'd get panned and rightly so.