I saw a lot of influential folks sharing this on Twitter earlier so figured it would be nice to share here. Noticed this caveat, though: “The Skip project concluded in 2018 and Skip is no longer under active development at Facebook.”
What a fantastic idea. It must have been a lot of fun to work on this.
I do wonder though: in Haskell, when lack of understanding of the lazy evaluation leads to memory usage blowing up, people call it a ‘space leak’. And I’ve heard the hard-to-predict memory usage of Haskell cited many times as one of its most difficult and frustrating features. It seems like hard-to-predict memory usage would almost be a feature of a language like this.
Also I find this quite interesting:
and (optionally) enforcing pure/referentially-transparent API boundaries.
I’ve often wondered whether ‘a module’ is the right boundary for mutable state. Mutable state that’s only accessible (both ‘physically’ in terms of scope and ‘logically’) from within a single file seems like the maximum scope that it can be reasonably be totally and completely understood.
It sounds like this language does implicit incremental programming, which is a great feature to have when your input has many changes but mostly remains the same, like updated to a document or a source code tree. Compilers, UI rendering engines and databases would benefit from that.
If I’m not mistaken, the project is still being developed by the lead, but not for Facebook.
The github repository is quite young and has recent activity, by three Facebook developers (according to github profiles).
What a fantastic idea. It must have been a lot of fun to work on this.
I do wonder though: in Haskell, when lack of understanding of the lazy evaluation leads to memory usage blowing up, people call it a ‘space leak’. And I’ve heard the hard-to-predict memory usage of Haskell cited many times as one of its most difficult and frustrating features. It seems like hard-to-predict memory usage would almost be a feature of a language like this.
Also I find this quite interesting:
I’ve often wondered whether ‘a module’ is the right boundary for mutable state. Mutable state that’s only accessible (both ‘physically’ in terms of scope and ‘logically’) from within a single file seems like the maximum scope that it can be reasonably be totally and completely understood.
It sounds like this language does implicit incremental programming, which is a great feature to have when your input has many changes but mostly remains the same, like updated to a document or a source code tree. Compilers, UI rendering engines and databases would benefit from that.