HNHacker News
TopNewBestAskShowJobs

jverlaguet

75 karma · joined September 26, 2018

submissionscomments
jverlaguet··on Skip: Code Declaratively, Compute Continuously
I am the founder of Skiplabs. I am around if there are any questions.
jverlaguet··on Skip – A programming language to skip the things you have already computed
It's definitely possible. You need to "break the cycle" by adding an additional layer. You can encode any graph as an array of objects were you replaced the pointers with indexes within the array. Of course, the granularity (how big the arrays are) is up to you, and there is a tradeoff here.

The other very important thing to note is that Skip has a memory model suitable for that use case. Every function has a GC overhead, but that overhead is non-contextual. Meaning, the GC will collect the memory for only one function (instead of the entire heap). This is possible thanks to the guarantees of the type-system.

jverlaguet··on Skip – A programming language to skip the things you have already computed
Right.

It really depends what one means by "system programming". I would add Java/C# and many others to that list.

jverlaguet··on Skip – A programming language to skip the things you have already computed
That's not exactly true. It's not under active development at Facebook. I still intend to work on Skip as it is said on the front-page: "The language, compiler and libraries are maintained as a side project by Julien Verlaguet, the main designer of the language."

And I am looking for people to help ;-)

jverlaguet··on Skip – A programming language to skip the things you have already computed
Skip is not meant to be a system programming language. So the comparison with Rust for example is difficult.

> "I see a lot of C++ influence" I don't see what gave you that impression. Perhaps the syntax? But I don't think it looks more like C++ than Java or C#.

> Why would I choose to invest in your language over one of these other ones that has more momentum?

There are several reasons, but of course I am biased: 1- builtin cache invalidation 2- safe parallelism 3- predictable GC

While 2-3 can be found in other languages, I think I can argue that 1 is very unique to skip.

The other thing is, what are you trying to build? If you what you want to do is to develop an incremental tool, then Skip is probably the best option out there right now.

Let's say you decided tomorrow to build a fully incremental C++ front-end, to support auto-complete for example (I chose C++ because it is notoriously complex). What would you write this in? I think Skip should be the language of choice.

jverlaguet··on Skip – A programming language to skip the things you have already computed
I would like to add that I intend to maintain it and build a community around it in outside of FB as it is mentioned on the front-page.

"The language, compiler and libraries are maintained as a side project by Julien Verlaguet, the main designer of the language."