4 ms·
To be fair, for a while they were ALSO working on their own graphical source editor that allowed for type-correct transformations and assisted refactorings. Th
by dack 4y ago
To be fair, for a while they were ALSO working on their own graphical source editor that allowed for type-correct transformations and assisted refactorings. They put that on the back burner specifically because they are trying to focus on fewer things :)
I think the distributed computing problem is pretty related once you have "content-addressable" source code. Agreed that it's a lot of work but I hope it pans out!
- renox 4y agoI disagree, there's no real relationship between 'content addressable' source code and distributed computing. Also I don't think that you need to create a new language to have 'content addressable' source code distribution.. Creating yet another language ensure that this will get nowhere, too bad.
- nerdponx 4y agoMy impression is that the original use case was distributed computing, and the content-addressable stuff took on a life of its own after that.
- ghc 4y agoThis is completely correct. Unison was always a distributed computing project, even when it was just an idea.
- zawodnaya 4y agoWell, there is a relationship. The relationship is specifically that Unison nodes can communicate code with one another unambiguously by exchanging hashes.
- pharmakom 4y agoWould this not work just as well with a lisp or even JS?
- klabb3 4y agoHow about wasm? Interop de lux
- zawodnaya 4y agoAn issue with exchanging WASM is you'll have to do either dynamic or static linking of dependencies. Unison works around this by having all definitions share a global address space (and the address of any given code in that space is the hash of its syntax tree), so there is no linking step. Or rather, the linking is done trivially by the hashing.
- Quekid5 4y agoThe key idea is that Unison code is in a sort of "normal form", such that e.g. what names you give things doesn't matter at all.
- zawodnaya 4y agoWell, it could be done in JS or Lisp. You'd have to replace all the references to dependencies in every function with a hash of the implementation of the referenced function and use some kind of global lookup table (which would need to be a distributed hash table or something). But this would be slow, so you'd need a compiler or some kind of processor to inline stuff and do CPS transforms, and by that time you've basically implemented a janky version of Unison.
- actionfromafar 4y agoOr a beautiful, conceptually simple version of Unison. In any case, not more convoluted than for instance Javascript V8 already is to get the performance it has.
- zubairq 4y agoYes it does work with JavaScript. At yazz that is exactly how we store is code, by the iPfs hash
- stewoconnor 4y ago
- klabb3 4y ago> Creating yet another language ensure that this will get nowhere, too bad. What has happened before, consistently, is that research or proof of concept- style languages pave the way for bigger players to take the ideas and incorporate them into existing or future mainstream languages.