Overview¶
About¶
Oli aims to be a confortable minimal language for general purposes which provides a mix of features from common markup languages and some basic features from programming languages
It has a beutiful, elegant and clean syntax with unobstructive grammar, that allows to use it for multiple purposes, like creating your own DSL. It was designed to be mainly consumed by humans
Rationale¶
Just for fun :)
Design goals¶
- Human focused, readability matters
- Keep it simple but provide built-in rich features
- Realiable syntax, avoid ambiguity
- Unobstructive grammar syntax symbol based
- Elegant mix of basic programming languages features
Real use cases¶
- Create syntax clean and readable configuration files
- Use it as your own DSL for specific purposes
- Store human writable/readable data, like manifest files
- Data interchange format for non-complex schemas structures
- Featured markup-like language for templating
- Replacement for XML, JSON, YAML, INI...
Features¶
At high level, here are some of the most relevant language features
- First class primitive types: boolean, number and strings
- List and data hashmaps support
- Data linking and references
- Copy or extend data structures
- Templaiting with string interpolation support
Upcoming features¶
There are some relevant features for the future 0.2 language version specification
- Indent-based blocks (5)
- Block scope references (18)
- Interpolated code (3)
- Built-in functions for data transformation and formatting (#`21`_)
- Math operations (20)
- Date as first-class type (2)
For a detailed, take a look to the Github discussion for more details