What is Mango?
Great programmers should use great tools! Writing bug-free software is hard, but Mango is a language that has your back:
- Prevent mistakes with a strong, static type system
- Write composable code using immutability by default
- Prevent data races using ownership (affine types)
- Never forget to handle errors or clean up resources with linear types
- Describe state precisely through non-nullability and sum types
- Trust your invariants with easy enforcement
- Catch errors early by doing things compile-time when possible
- Powerful, but not too powerful, macros
(These are planned features and are subject to change.)
The guiding principle is that you should be able to reason about small parts of code, because Mango pushes towards good coding practices, and there are many invariants that you can rely on.
Can I use Mango today?
Mango is still in early development, so unfortunately not. It won't be ready for production use for at least some years. But if you want to get a head start, hopefully it is ready to play with sooner!
What languages is Mango similar to?
While Mango is a mix of many influences, perhaps its closest ancestor is Rust. It shares many of the safety features of Rust, but is less low level, and does not compete with C in performance. The syntax does not resemble Rust's though, and is closer to Python's.
Where can I run Mango?
Mango compiles to WebAssembly, the portable, safe and high-performance compile target that is included in browsers.
WebAssembly is also available outside browsers, so you can use Mango for both the frontend and the backend for seamless integration.
You can star or follow on Github, follow Mango news on Twitter or join the group on LinkedIn. Other channels, like live chat, will likely be set up later.
I'd like to get involved
That's great, glad you like the project! Development happens on Github. Bugs, suggestions, code contributions, documentation, community management, testing - all help is welcome!