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:

  • pure declarative 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

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

— Multi-value functions

Woo, another goal ticked off on the roadmap. Plasma now supports functions that return any number of results.

— Parametric Polymorphism

It’s been some time but we’ve finally ticked off another goal on the roadmap. The basics of parametric polymorphism work. You can define a type, such as List(a), not that a syntax sugar for list cells and lists does not exist yet:

— Match-case statements

We’ve reached another minor milestone. Match-case statements are now supported including some rules for how variables are allowed to be used in branching code. This also means that Plasma is now Turing complete, although it is far from being expressive.

— Presentation At Compose
On the 29th of August I gave a presentation at Compose Melbourne about Plasma's goals and ideas, how it is different from many other functional languages and the current status of the project.

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.