Orbis
Orbis will be a new-gen language, it will prioritize human readability while ensuring computational efficiency. It will be:
- Native compiled (initially to x86 and ARM)
- Modern
- Adaptable learning curve
- Based on the DRY (Don't Repeat Yourself) principle
- Fast to iterate
Inspiration
Every human creation is inspired by others, and Orbis draws inspiration from several programming languages:
- C/C++
- Rust
- Zig
- Nim
- Odin
- Go/V
- C#
- Kotlin/Scala
- Elixir/Gleam
- TypeScript
Yes, that is a lot of languages, and some were left out. Orbis will learn the lessons from them.
Goals
- A language that can be applied in a, but not limited to, high-performance, critical computing
- A language that feels natural to write and read with an adaptable learning curve
- A language that can be extended (see macros and meta-programming)
- A language that can be learned in less than an hour for a programmer
Features
- Static typing
- Type inference
- Templates/Generics/Macros/Meta-programming in general
- Memory safety (like a borrow checker)
- Concurrency
- No try/catch, only Result and Option types
- Pattern matching
- Extensible via 'extensions'
- C/C++ interoperability out of the box
- Standard library with the most common needs
About this
This guide is a work in progress, currently in v0.1. Think it as a small specification. Things may change, be removed or added and here is a list of no done things:
- Strings
- Memory management
- Standard library
- Lifetime management
- SoA and AoS
- Macros and meta-programming
- Annotations or attributes
- Reflection
- Functional programming
- Async / Await
- Operator overloading
The original guide was written in about 8 hours, so may have some typos and errors. If you find one, please open an issue. Also if you have any suggestions, questions or want to contribute, please open an issue or a PR.