| > not all of the last 30 odd years of systems and programming research was pointless. Indeed, which is why it's a shame our primary server OSes (Unix-likes) can't incorporate them. Urbit can. As for what are the approaches different, there have been many words spilled over that, but here's a few examples to wit, most of which exist in one or two other systems, but aren't widely used: - All events are transactions, down to the VM level. There's no concept of an event that left garbage around because power was cut or the machine was rebooted. You can always crash an event, making it as if it never happened. - Single-level store. Never worry about ORM because your in-memory state never goes away (because all events are transactions). - Persistent connections with exactly-once messaging. Disconnection is just seen as long latency. - Strict, purely functional language with a strong type system but no Hindley-Milner (so you don't need category theory). - Sane indentation for a functional language, known as "backstep". - The file system is a typed revision control system, which allows intelligent diffs on types other than plain text. Most, if not all, of these, have been described in research, but nobody's bothered to build a system with them. |
None of these make use of monads or anything rooted in category theory.
https://en.wikipedia.org/wiki/Hindley%E2%80%93Milner_type_sy...
HM is a type system that also gives you an algorithm to infer types without having to do the "List<Integer> foo = new ArrayList<Integer>()" dance from languages without type inference. That's it. It has nothing to do with category theory.