The Plasma programming language strikes a balance between functional and imperative programming, making it easier to write reliable and efficient software. Plasma is under development and is not usable yet.

Its planned features include:

  • side-effect free semantics,
  • a strong, static and expressive type system,
  • direct support for loops, arrays and streams,
  • a foreign function interface (FFI) for integration with C,
  • concurrency support with N:M threading,
  • manual and automatic parallelisation
  • MIT License

Sample

func fib(n : Int) -> Int {
   if (n < 2) {
      f = 1
   } else {
      f = fib(n-1) + fib(n-2)
   }
   return f
}

For more information see our About page, and for detailed information about syntax and semantics take a look at the Plasma Language Reference and the rest of the documentation.

Latest News

— 1,000 commits
Plasma now has 1,000+ commits on the master branch
— Garbage collection

Plasma now supports garbage collection (GC). It’s a little further ahead in the roadmap but I started work on it as a self-contained task to experiment with live streaming.

— Resources and resources in higher-order code

A couple of months ago we added support for resources in higher order code, and before that we added resources. This late news item will cover both new features.

— Two and a Half Years

It’s been two and a half years since I started work on Plasma. With the end of 2017 I noticed that many other language projects were publishing retrospectives of their last year. Well with one developer progress is a lot slower, so rather than summarise the last year, I’ll write about the whole history!

— Higher order values

Another item ticked off the roadmap! Higher order values and higher order calls. That’s two items!

See all news.

How can I help?

The project is in its very early stages, so there is both plenty of work to do yet that work is pretty specific. Check our CONTRIBUTING.md file for information and suggestions. Plasma's source code is hosted on github.

Feel free to follow along on via Mailing lists, IRC or Social Media.