All about the programming language called Skip

Skip has a code-formatter and a tool for executing codemods to assure consistency in code style.

In 2018, Facebook open-sourced its general-purpose programming language Skip on Github under an MIT source licence. The programming language provides efficient memoization-based caching and cache invalidation. 

Former software engineer at FAIR, Julien Verlauget, developed Skip along with an experienced team comprising senior contributors to ActionScript, C#, Flow, Hack, HHVM, Prettier, React Native, and Relay. He left Facebook in 2019 to build products around Skip. He is now the CEO of SkipLabs.

Skip, also known as Reflex, keeps track of side effects to offer reactive invalidation, ergonomic and safe parallelism, and fast garbage collection. Skip is statically typed and compiled in advance using LLVM to generate highly optimised executables.

THE BELAMY

Sign up for your weekly dose of what's up in emerging technology.

Is Skip still relevant?

Yann Lecun,  Chief AI Scientist at Meta, put the spotlight back on Skip. He tweeted: Could it be the basis of a new breed of deep learning frameworks? 

“For lower-level programming (and the high level for the purists), some numerically-oriented, GPU-supporting version of Skip may make sense, no?, ” he asked. Skip has been a base for projects like SQLive.

The major features of Skip include:

Reactive invalidation and caching 

The major feature of Skip is its accurate monitoring of side effects, including mutability of values and distinguishing between nondeterministic and reactive invalidation data sources. Developers can opt-in to safely memoizing that computation when Skip’s type system can guarantee the absence of side effects at a given function boundary, with the runtime ensuring that previously cached values are erased when the underlying data changes.

Parallelism in a safe environment 

Skip supports two different types of concurrent programming, both of which avoid thread-safety difficulties, thanks to Skip’s side effect tracking. Skip uses the async/await syntax to facilitate ergonomic asynchronous processing. Asynchronous computations cannot relate to mutable state and are thus safe to run in parallel. Skip provides APIs for direct parallel computing to avoid issues like shared access to mutable state.

Efficient and predictable GC

Skip employs a new memory management strategy that combines features of traditional garbage collectors with simpler linear (bump) allocation algorithms. The garbage collector only has to examine memory available from the root of a computation thanks to Skip’s side effect tracking. In practice, this means that programmers will be able to write code that has predictable GC overhead.

Functional/object-oriented hybrid language 

Skip is an opinionated combination of functional and object-oriented notions deliberately merged to make a unified language. The expression-oriented language supports abstract data types, pattern matching, easy lambdas, higher-order functions, and (optionally) enforcing pure/referentially-transparent API boundaries, similar to functional languages. Skip uses ideas from “systems” languages to offer low-overhead abstractions, compact object memory layout via value classes, and patterns that ensure code specialisation through static method dispatch.

Outstanding developer experience 

Skip was built from the ground up with a faster iteration pace typically associated with dynamic languages. The compiler supports incremental type-checking (with alpha versions of IDE plugins providing near-instantaneous errors as you type), provides syntax hints to help rookies learn the language, recognises small typos in method/class names, and even recognises common alternatives to Skip’s standard library method names. Skip also has a code-formatter and a tool for executing codemods to assure consistency in code style.

More Great AIM Stories

Abhishree Choudhary
Abhishree is a budding tech journalist with a UGD in Political Science. In her free time, Abhishree can be found watching French new wave classic films and playing with dogs.

Our Upcoming Events

Conference, in-person (Bangalore)
Machine Learning Developers Summit (MLDS) 2023
19-20th Jan, 2023

Conference, in-person (Bangalore)
Rising 2023 | Women in Tech Conference
16-17th Mar, 2023

Conference, in-person (Bangalore)
Data Engineering Summit (DES) 2023
27-28th Apr, 2023

Conference, in-person (Bangalore)
MachineCon 2023
23rd Jun, 2023

Conference, in-person (Bangalore)
Cypher 2023
20-22nd Sep, 2023

3 Ways to Join our Community

Whatsapp group

Discover special offers, top stories, upcoming events, and more.

Discord Server

Stay Connected with a larger ecosystem of data science and ML Professionals

Subscribe to our newsletter

Get the latest updates from AIM