Live data from Hacker News

Skip – A programming language to skip the things you have already computed

skiplang.com

11–20 of 103 posts

Re: Skip – A programming language to skip the things you have already computed

#11

How are the side effects tracked? I couldn't find it in a brief read of the source code. The documentation mentions sequence points at which previous side effects are guaranteed to have finished. But what actually tracks whether IO or state changes have occurred?

IO is managed through very specific native extensions where updates to that IO source are able to be tracked outside of the language and fed back in. For example, we don't have anything that lets you read from command line or stdin. But you can open and watch a file. Any changes to that file will be tracked by the runtime.

Other non deterministic computation, like randomness or time is outright banned in the tracked environment. (There is an opt-in 'untracked' modifier if you want to write code outside of the reactive environment).

For other tricky behavior, like mutability/mutations on an object, the type system tracks the mutability mode of any object. Only objects that are fully immutable ('frozen' in the language) can be memoized inputs/outputs to a function.

Re: Skip – A programming language to skip the things you have already computed

#13
post #6

> The Skip project concluded in 2018 and Skip is no longer under active development at Facebook. Just a warning if you're interested in using this.

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."

How 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?

Re: Skip – A programming language to skip the things you have already computed

#15
I always had my go-to questions for commercially sponsored programming language projects after having done some of them: How did them start? Did them pivot from, say, a personal project or were them thoroughly planned within the company? How much resource was spent and how was the (current) fate of the project determined?

Re: Skip – A programming language to skip the things you have already computed

#16

The link to specification is broken.

Where do you see a link to that? We had a specification in the works, but it fell horribly out of date. I wasn't sure that we kept it around

It's in the footer. CTRL + F for specification.

Re: Skip – A programming language to skip the things you have already computed

#17

Earlier quoted context omitted.

Where do you see a link to that? We had a specification in the works, but it fell horribly out of date. I wasn't sure that we kept it around

It's in the footer. CTRL + F for specification.

I'll look into removing it.

If you want an overview of language features/design. I'd start with the docs: http://skiplang.com/docs/hello_world.html

Re: Skip – A programming language to skip the things you have already computed

#18
post #6

> The Skip project concluded in 2018 and Skip is no longer under active development at Facebook. Just a warning if you're interested in using this.

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."

Can 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?

Re: Skip – A programming language to skip the things you have already computed

#19

How are the side effects tracked? I couldn't find it in a brief read of the source code. The documentation mentions sequence points at which previous side effects are guaranteed to have finished. But what actually tracks whether IO or state changes have occurred?

IO is managed through very specific native extensions where updates to that IO source are able to be tracked outside of the language and fed back in. For example, we don't have anything that lets you read from command line or stdin. But you can open and watch a file. Any changes to that file will be tracked by the runtime. Other non deterministic computation, like randomness or time is outright banned in the tracked…

> For example, we don't have anything that lets you read from command line or stdin. But you can open and watch a file.

whats the difference between opening a file and watching it and watching stdin?

Post reply on HN