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

  1. A language that can be applied in a, but not limited to, high-performance, critical computing
  2. A language that feels natural to write and read with an adaptable learning curve
  3. A language that can be extended (see macros and meta-programming)
  4. 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.