Unison is an open source functional programming language with special support for building distributed, elastic systems. It began as an experiment: rethink all aspects of the programming experience, including the core language, runtime, tooling, as well as code versioning and publishing, and then do whatever is necessary to eliminate needless complexity and make building software once again delightful, or at the very least, reasonable.
Unison is a new programming language with special support for building distributed systems. Specifically, it is an open source statically-typed, functional language that was Influenced in party by Haskell, Erlang, and another research language called Frank. Unison has been a research language for several years but it is in public alpha now.
The primary goals of Unison were to re-make a language from first principles while abiding by the following core tenets:
For example, consider factorial n = product ( range 1 (n+1)).
Tests are associated with a hash, as a result, we can cache test results quite easily. (The AST, type, and evaluted hash is stored.)
Note that this is something that is in progress for Unison. The idea is that distributed programming should just be a library. Engineers should define set of operators, and then define different “interpreters” to handle these operations.
A lot of the aforementioned benefits of Unison are possible because the code-base is append-only. A definition is never mutated; a NEW definition just happens to be created. For a particular hash, the definition will never change.
Definition for a hash never changes We can cache all kinds of info This makes it easier for your IDE in a way (i.e. cache-invalidation, etc.)