Able is a language project I started work on shortly after I posted my lament about the existing popular languages.

In short, it satisfies my vision for a great language:

  • pleasant to use
  • compiles to a single binary
  • fast performance
  • succinct
  • simple and easy to learn
  • auto-yielding coroutines
  • hybrid OO/functional

Crystal almost meets all my criteria for a perfect language. Crystal would be perfect if it supported parallelism, interfaces, better type inference, and a more functional nature.

Since Crystal is pleasant to use, I’m implementing Able in Crystal. I built a parser combinator - Arborist - in order to implement the Able grammar. Now I need to finalize the initial design of the language, finish the grammar, and then start implementing type inference/unification.