Unison - A new approach to Distributed computing, Storing Code, etc.

  • Thread starter Thread starter elcaro
  • Start date Start date
AI Thread Summary
Unison introduces a paradigm shift in distributed computing by transitioning from text-based code storage to using the Abstract Syntax Tree (AST) format, which enhances code management and dependency handling. This approach allows for easier refactoring and distribution, as code changes do not break the existing structure and can be managed via hash values. However, the transition to Unison may face challenges, including the need for existing codebases to adapt and the incompatibility with current development tools. While Unison aims to provide a more efficient programming environment, skepticism remains regarding its widespread adoption and the potential for it to become another language that doesn't significantly improve upon existing solutions. Overall, Unison represents a novel approach to programming that could redefine how code is stored and processed.
elcaro
Messages
129
Reaction score
30
TL;DR Summary
Some years ago I posted a message about the idea of storing source code ino a (relational) database in its semantic form (AST-Abstract Synta Tree), instead of text-files. I can't find that post anymore. But here is a new post about this topic, and about a recent implementation about this idea in the form of the Unison programming language and development environment.
Most progrmming languages and programming environments work at the basis of a textual representation of the code, and all tools to built the executables or libraries are based on acessing text files, including the built tools, version control systems and compilers and such. There are not much noteworthy exceptions to this, except perhaps SmallTalk, which nowadays is not used very often.
To change from text-based storing and processing of source code to a storage format that stores the semantic form of the code (in the form of the Abstract Syntax Tree) is therefore a major paradigm shift.

There are both advantages and disadvantages to this:
pro:
The tools for compiling/generating code have already knowledge about all the dependencies of the code. After submitting code to the editor (UCM - Unison Codebase Manager) the AST of the code block is produced and from that a hashvalue (SHA512) is computed and stored. Different code will generate different hashes and hash collisions is almost impossible. All kind of code management, like refactoring, renaming, are much easier to perform, and don't have the disadvantage that regular text-base tools have of leaving the code in an invalid intermediate state. Actions like renaming variables or functions are in fact a no-op, which doesn't break the code nor involves recompiling or rebuilding the code. Distributing the code to other systems is also very easy, if the system already runs Unison, it would just involve sending the hashvalue. If the hashvalue already exists on that platform, it can handle (execute) the code, if not, it can ask for the code to be handed over in byteformat, and all dependencies will automatically be handled.

con:
This new format for storing and developing code is a huge break with existing (text-based) code development, and will require time before it becomes adapated widespread. Existing code bases can (as of yet) not be transformed to Unison, but maybe in the future tools will be developed to migrate from existing platforms to Unison. Existing tools for building/compiling software will not work with Unison (but Unison provides a rich set of tools for that kind of work, which potentially are even more capable as existing tools for program development).

As an introduction to Unison, here are some links to video conversations about Unison, and links to the main website.
Rethinking Distributed Programming with Unison Lang (with Rúnar Bjarnason)
Rúnar Bjarnason - Unison
"Unison: a new distributed programming language" by Paul Chiusano
Rúnar Bjarnason, "Unison: A Friendly Programming Language from the Future"

Official website of Unison lang:
Unison-lang website
 
Technology news on Phys.org
It looks like Unison is yet another language, one that believes it is better than all the others. Pardon the cynicism, but I have seen this happen many times before.

Come the revolution, things will be different, not better, just different.
 
  • Like
Likes Vanadium 50, PeterDonis and phinds
elcaro said:
TL;DR Summary: Some years ago I posted a message about the idea of storing source code ino a (relational) database in its semantic form (AST-Abstract Synta Tree), instead of text-files. I can't find that post anymore. ...

Would that be all of two years ago ? And rather easy to find ...

:rolleyes:

##\ ##
 
  • Like
  • Haha
Likes pbuk, Vanadium 50 and elcaro
Baluncore said:
It looks like Unison is yet another language, one that believes it is better than all the others. Pardon the cynicism, but I have seen this happen many times before.

Come the revolution, things will be different, not better, just different.
It might be, we don't know. There are many cases in which mass adaptation of a breaking technology didn't happen, but sometimes it does happen. What I guess has to happen is that existing development platforms have a path to migrate to Unison, else they will not switch to using Unison. That is why older technologies are still around (FORTRAN, COBOL)....
 
BvU said:
Would that be all of two years ago ? And rather easy to find ...

:rolleyes:

##\ ##
I guess you are better as me in finding old posts.... Thx!!
 
elcaro said:
TL;DR Summary: storing source code ino a (relational) database in its semantic form (AST-Abstract Synta Tree), instead of text-files. I can't find that post anymore.
Is this secretly ironic?
Baluncore said:
It looks like Unison is yet another language, one that believes it is better than all the others. Pardon the cynicism, but I have seen this happen many times before.
FORTRAN was.

Seriously.

Pre-FORTRAN, your choices were assembly and assembly. FORTRAN was the first commercial higher-level language in wide use. It made pretty much everything easier.

Follow-ons were better in one thing or another (at best - some were universally worse or different to be different) but FORTRAN was a language that improved everything. It basically killed assembly-language programming except for special cases, e.g. operating system noot loaders.

FORTRAN was a huge step. All subsequent steps have been smaller.
 
  • Like
  • Love
Likes BvU and dlgoff
Vanadium 50 said:
Is this secretly ironic?

FORTRAN was.

Seriously.

Pre-FORTRAN, your choices were assembly and assembly. FORTRAN was the first commercial higher-level language in wide use. It made pretty much everything easier.

Follow-ons were better in one thing or another (at best - some were universally worse or different to be different) but FORTRAN was a language that improved everything. It basically killed assembly-language programming except for special cases, e.g. operating system noot loaders.

FORTRAN was a huge step. All subsequent steps have been smaller.
Correct. The invention of the FORTRAN programming language and similar programming languages (COBOL, ALGOL) was a huge step forward.

But are better programming languages / programming environments, like the one Unison hopes to offer, which can offer another huge step forward possible?

Unison does not just offer a new programming language - there are many other programming languages that offer advantages for programmers (like Rust, Zig, etc.) but none of them are too breaking - but offers a new way of storing program information. Unlike most other programming languages (with the exception perhaps of SmallTalk) which store and process program infiormation in the form of text files, Unison stores the Abstract Syntax Tree in a database, and all development tools (built tools and version control tools) work with that format.
 
Back
Top