Posted by sia_xi 2 days ago
1. Self-hosting compiler 2. C99 backend 3. Built-in dependency injection / IoC 4. Typed business-rule features like decision tables 5. Native binaries + WASM 6. Real app built with it: eXstream
However, there are features that I intentionally brought it to the language:
- DI and IoC features:
this language is not made for writing hello world programms, rather some microservices and the code suppose to have abstraction layer and impl layer that connected via DI
- Event
I wanted to have a similar concept as (signals) as part of language - It's worth mentioning that the transport layer has a default implementation but it can be changed (https://code-by-sia.github.io/xi/events?_highlight=events#ap...)
- Different Function Types: the reason for having differnet function types is rather memory management, basically give Compiler more information; therefore, at the compile time we know how to manage the memory, It also brings some limitations (for example, a mapper function is not allowed to make any mutation or actions calls)
- Memory management: it's still not perfect as the compiler is still not in the fully self-hosted stage and currently it complies to C99 then to binary, but the idea is to avoid GC while not making hard-to-learn syntax (e.g. Rust borrowing) see more at : https://code-by-sia.github.io/xi/memory/