The Plasma programming language strikes a balance between functional and imperative programming, making it easier to write reliable and efficient software. Plasma also has a strong focus on concurrency and parallelism, and will eventually support automatic parallelisation. 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) {
      return 1
   } else {
      return fib(n-1) + fib(n-2)
   }
}

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

— Resuming development

A little about development status and what 2023 may hold, and some benchmarks

— New Syntax for if, match and unpackiing-without-match

We’ve two syntax changes we’d like to introduce

— Programming Language Checklist
It's traditional to evaluate any new language using this (in)famous checklist. Let's try it for Plasma.
— Removing Case Sensitivity

We’ve made a change to Plasma’s syntax, removing any case sensitivity in the syntax.

— CI and docker images

Announcing CI and docker images for developers or evaluation

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, chat or social media.