Created by RĂșnar Bjarnason and Paul Chiusano, the first alpha release of the Unison programming language was in 2019.
Licensed under the Apache License 2.0, the most recent release, as of this writing, was on December 13, 2023.
Unison is a modern, statically-typed purely functional programming language similar to Haskell. It was inspired by Haskell, Erland, and Frank.
Unison code is stored in a database, and identified by a hash of its syntax tree. This unique identifier simplifies distributed programming, eliminates builds and dependency conflicts, supports typed durable storage and structures refactorings, and enables better tools for working with code.
Most programming languages are designed to describe what a program does on a single computer. When you want to run a computation elsewhere, it is necessary to send bytes over the network and make sure the other end is running a separate program that will run the computation you want.
This makes distributed computations complicated and requires separate programs to be stitched together when being sent over the network. Unison simplifies this process by allowing arbitrary computations to be moved from one location to another, with missing dependencies deployed on the fly.
The basic protocol is easy. The sender ships the bytecode tree to the recipient, who inspects the bytecode for any missing hashes. If it already has all of the necessary hashes, it can run the computation; otherwise, it requests the ones that are missing, and the sender syncs them on the fly. They'll be cached for next time.
The ability to relocate arbitrary computations embodies the more limited notions of code deployment, remote procedure calls, and more, all of which allow for more powerful distributed computing components as ordinary Unison libraries.
In Unison, you're rarely waiting around for your code to build because Unison definitions are identified by their hash, which never changes. We may change which names are associated with which hashes, but the definition associated with a hash doesn't change. For this reason, in Unison, we can parse and typecheck definitions once, and then store the results in a cache that is never validated. This cache is not something temporary in yor IDE or build tool, but part of the Unison codebase format. Once a definition has been parsed, typechecked, and added to the codebase, it never has to be done again.
This portion of our computer programming language guide features the Unison programming language. Online resources for the language, such as the official developer community website, repositories, or other websites focused on the language, are appropriate for this category, along with developer community sites, forums, tutorials, reviews, or other Unison content.
 
 
Recommended Resources
Exercism is a free platform that provides programming exercises and mentorship for those wanting to develop their coding skills. It offers a wide range of programming languages, including Unison. Its section on Unison includes forty exercises that are intended to help users learn and master the Unison programming language, along with automatic analysis of their code and personal mentoring, all for free. Unison is known for simplified distributed programming.
https://exercism.org/tracks/unison
The official GitHub repository for the Unison programming language, which is designed to be simple, safe, and scalable, contains the source code for the language, and is the platform used by the Unison programming community. Included are collections associated with the project, including documentation and a discussion area for the Unison development community. Interested developers can contribute to the language development by creating an account on GitHub and forking the repository.
https://github.com/unisonweb/unison
Unison is a modern, statically-typed purely functional programming language similar to Haskell. The official website for the language features an overview of its design and development, its development community, and ecosystem, as well as offers documentation, and a language and platform roadmap for future development, including Unison cloud computing. Examples of coding in Unison, and a sample "Hello World" program in Unison are presented, and a playground is available.
https://www.unison-lang.org/
This is a cloud-computing platform that permits users to deploy services with a function call, access storage as easily as in-memory data structures, and call services as easily as local functions. The platform allows developers to deploy HTTP and WebSocket services in seconds without the need to build containers, manage VMs, or other cloud infrastructure management. The platform also provides typed durable storage, allowing users to save any value in their transactional storage layer.
https://www.unison.cloud/
Unison is a simple, flexible, and potentially optimal tool that performs integrated register allocation and instruction scheduling using constraint programming as a modern method for combinatorial optimization. The language can be used as an alternative or as a complement to the algorithms provided by the state-of-the-art LLVM compiler. A video explains how this is accomplished. Other videos, publications, downloads, people, and funding information are provided.
https://unison-code.github.io/