I recently listened to the following podcast about the Unison programming language. This is a fascinating discussion, and perhaps a glimpse into the future. Some points:
- Unison stores code in nodes and each entity is hashed (this sounds familiar as we are doing a similar thing in Simple IoT.)
- programs are stored in SQLite databases as data, not text files.
- because each entity is hashed, every function is globally addressable. This allows you to treat the entire world as one computer.
- there is no build, deploy, data encoding, etc with Unison – that is all built into the language.
- Unison has the potential to vastly simplify distributed systems.
This sounds neat, but is it efficient? It seems often that technologies like blockchain, Nix, and functional programming do very well at accomplishing some laudable goals, but they are not very efficient as excessive amounts of programming effort, data storage, network bandwidth, or computation are required. Scalable systems need to also be simple and efficient. So it will be interesting to see how Unison does on these metrics.