# *xlang* [![Crates.io](https://img.shields.io/crates/d/xlang)](https://crates.io/crates/xlang) [![GitHub](https://img.shields.io/github/license/xlang-lang/engine)](https://github.com/xlang-lang/engine) [![GitHub issues](https://img.shields.io/github/issues/xlang-lang/engine)](https://github.com/xlang-lang/engine) [![GitHub Workflow Status](https://img.shields.io/github/workflow/status/xlang-lang/engine/auto-build)](https://github.com/xlang-lang/engine/releases) *xlang* is an experimental, garbage collected, dynamically-typed, interpreted programming language focused on performance. > **note!** *xlang* is in a pre-release state. It may not work and it may undergo serious breaking changes. ## resources - [*xlang* docs](https://github.com/xlang-lang/engine/tree/main/docs) - [todo](https://github.com/xlang-lang/engine/tree/main/TODO.md) - *if you want to know what xlang aims to offer in the somewhat distant future* ## philosophy - syntax, semantics and naming conventions should be consistent and obvious. - there should only be one obvious way to do things. - unsafety only occurs on the compiler side. The virtual machine should assume that any input program is valid, for the sake of performance. - no "real" multithreading, only lightweight virtual "fibers". Only native functions are spawned in a different thread, to prevent halting the program. - minimal implicit type conversions - no weird or dumb syntax. Only syntax that makes sense and is easy to read. - minimal breaking changes. Breaking changes past the pre-release state must be necessary.