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