Haskell, Erlang, and Frank walk into a bar and begin new project to work in Unison

At the Strange Loop conference in St. Louis, Missouri, earlier this month, Paul Chiusano, founder of Unison Computing, gave the audience a tour of Unison, an emerging programming language designed to build distributed systems.

Created by Chiusano, Arya Irani and Rúnar Bjarnason, Unison was inspired by Haskell, Erlang and Frank, a trio of functional programming languages. It is a statically typed open source functional programming language and is currently in public alpha tests.

Chiusano, in his presentation at the conference, said that Unison is based on a central technical ideal. "At Unison, we will identify definitions not by name, but by a hash of their content," he explained.

Programmers commonly define functions by giving them names such as "foo" or "bar." You can also do it in Unison, but the way in which language tracks those names, which are only Unison metadata, is to associate them with a 512-bit SHA3 content hash of implementing that function.

Using a hash as the specific content address has implications for the way Unison code is stored. "For each hash, we are going to store its serialized abstract syntax tree," Chiusano said.

That abstract syntax tree (AST) stores hashes of several dependencies, the basic operations within the definition in question. And that AST becomes the source of truth for a Unison program, rather than a textual representation stored in files.

Chisano said that no one has really tried to build a programming language around this idea, although it seems that OCaml stores the MD5 hashes of the modules on which it depends to verify them at the time of the link. And hashes are widely used as unique identifiers in a variety of applications.

The Unison website offers a suitable metaphor for understanding content-based addressing. "The definitions in unison are like stars in the sky," says the site. "We can discover the stars in the sky and choose different names for these stars, but the stars exist regardless of what we choose to call them."

The idea shares some conceptual similarities with return-oriented programming, where program functionality is assembled by referring to memory addresses to access specific sequences of machine instructions.

Making the code addressable by hash has significant implications for developers working with Unison.

  cobol

COBOL: Five small letters that if put on a CV would guarantee a stable income for many gray beard coders

READ MORE

"We are not going to have any more construction," Chiusano said. "We will be able to rename trivially. We will be able to cache the test results so as not to have to continue running the same tests over and over again. We will eliminate dependency conflicts. We will have a good history to make a long-lasting typed storage without any type repetitive, like writing JSON encoders and decoders. "

Unison has been designed to be suitable for distributed systems, because it allows a single program to describe its own deployment on multiple nodes instead of having multiple copies of the same code coordinating with each other across nodes.

As Bjarnason said in a presentation last year, "Unison can transfer an arbitrary calculation, including its dependencies, to a remote node."

Unison has not yet joined. Many of the characteristics and capabilities of language remain in development. But there is enough to explore. ®

Sponsored:
Beyond the data frontier

For More Updates Check out Blog, Windows Softwares Drivers, Antivirus, Ms Office, Graphic Design Don’t Forget to Look Our Facebook Page Get Into Pc like us & follow on Twitter- @getinpc

Please Note: This content is provided and hosted by a 3rd party server. Sometimes these servers may include advertisements. igetintopc.com does not host or upload this material and is not responsible for the content.