4 ms·
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
by jverlaguet 8y ago
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."
- fusiongyro 8y agoHow does your language compare to the glut of modern systems-ish languages like Rust, Go, Swift, Julia, Nim? I see a lot of C++ influence here. Your docs don't explain how you make parallelism ergonomic, but the "async" keyword is getting popular. Why would I choose to invest in your language over one of these other ones that has more momentum?
- aylmao 8y ago> Why would I choose to invest in your language over one of these other ones that has more momentum? FWIW I don't think anyone is claiming you should, especially given it's not under active development (:
- jverlaguet 8y agoThat'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 ;-)
- dmix 8y agoThis was an unfortunate choice of wording, that maybe should be updated: > The Skip project concluded in 2018 and Skip is no longer under active development at Facebook. This makes it sound like the project was killed off entirely, as it mentions its 'concluded'.
- trurl 8y agoThe key question for me is what about the project made Facebook uninterested in using the language or continuing development. On paper, Skip sounds quite compelling, so I assume there is some reason, if just politics.
- skip-throwaway 8y ago(I work at FB, not on Skip.) The project was originally started with the hopes of converting Facebook's entire (Hack) web codebase to use Skip and support reactivity. It seemed like the Skip team hoped that it would be possible to convert incrementally while reaping performance wins incrementally too. Converting a multi-million-line codebase takes many years, and in practice, it turned out that huge swaths of the code would need to be converted before any wins were had. (To fully leverage reactivity, all your dependencies also need to be reactive.) Our codebase is intertwined and doesn't have many self-contained parts that could be fully converted in isolation so this wasn't possible. Essentially, Skip is still very promising as a language for new projects but it feels like Facebook management couldn't justify staffing a permanent team given that we don't have a path to move huge chunks of development to it except in projects being developed more from scratch, which we tend to have few of. I wouldn't see any of this as an indictment of Skip's potential generally.
- X6S1x6Okd1st 8y agoThanks for the insight. That seems quite reasonable, especially the fact that you'd need your dependencies to implement it before seeing any speed up.
- Serow225 8y agoThanks for the insight.
- jverlaguet 8y agoSkip 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.
- fusiongyro 8y agoYou have a doc section named "Lvalues." Nobody talks about lvalues outside C++.
- vjeux 8y agoThis is the technical term for what's left of the `=` sign. If you are from a JavaScript background, it is commonly called "destructuring assignment". The interesting about Skip is that local mutations are explicit with a ! in front of it. And it works in the context of a lvalue. We may want to rename this title if it's confusing.
- jasone 8y ago> Skip is not meant to be a system programming language. So the comparison with Rust for example is difficult. Can you elaborate on this comment in the context of some of the other languages listed by the grandparent (Go, Swift, Julia, Nim)? Granted, writing bare-metal operating system kernels may severely limit practical options, but I can imagine using Go, Swift, and Nim for slightly higher level "systems programming". Skip would be a reasonable alternative to these, right?
- lkschubert8 8y agoUnder Safe Parallelism it says Skip supports ergonomic asynchronous computation with async/await syntax
- pkulak 8y agoLooks to me like it has a lot of the benefits of Haskell without the mind-numbing learning curve.
- X6S1x6Okd1st 8y agoCan you speak to what the takeaways for facebook were now that this project is concluded as a facebook sponsored project? Do you see the language supporting caching beyond in memory (i.e. plugin redis/memcached etc) and allow caching between processes?