Better user experience

IDE-friendly functional programming with Keli’s simple syntax

Sarah Schlothauer
functional programming
© Shutterstock / Dusit srisroy

Functional programming has its fans as well as its foes, but everyone knows that it can be difficult. A new experimental programming language called Keli aims to make functional programming more accessible. Its minimal syntax goals aim for easier adoption. Did we mention it’s IDE-friendly?

When it comes to functional programming languages, the verdict is contentious. Getting people on board with a functional programming language is a challenge, but it’s one this language is ready to take. Keli began its creation with the goal of making functional programming more easily adoptable and IDE-friendly. It strives to fill a hole in the functional programming landscape and make functional programming languages more accessible.

Created by GitHub user wongjiahau, this language has big shoes to fill and even bigger plans.

IDE-integrated functional programming

From the “motivation” section in the language’s documentation, the creator quotes a top Quora answer that sums it up nice and bluntly: “The user experiences of functional programming languages sucks.” Does it have to be that way or can this improve?

First of all, Keli is a general purpose language which shares a lot in common with Haskell. Its template is based on the Haskell2010 Language Specification Report.

Keli’s design goals were four simple, yet effective points:

  • Minimal syntax
  • New features should be integrated without extending the grammar
  • Favor compiles error more than run-time error
  • Syntax should allow easy Intellisense integration

SEE ALSO: POLL: Which programming languages are on your list for 2019?

Functional programming languages tend to struggle with IDE integration, which may hold users back from language adoption.

While C#, Smalltalk, and Java are IDE-friendly, they are not functional programming languages. Meanwhile Haskell, F#, and OCaml are functional programming languages, but lack that crucial IDE integration.


A Keli program consists of a set of module, which each contain a list of declarations. Each declaration is made up of expressions.

Let’s explore some more of the features that sets Keli apart from other functional programming languages.

Features include:

Read about the lexical structure in the documentation.

Installing Keli

You can install Keli by following the instructions here. You will need: the Haskell Tool Stack, Node.js v10.0.0 +, Git, the Keli compiler from GitHub, Visual Studio Code, and the extension for VSCode.

(We’d love to hear your feedback on using it, and surely so would its creator! We will definitely check in again on this language in the future to see its progress.)

See Keli in action and view the showcase’s demos.

SEE ALSO: A beginner’s guide to Java programming nightmares

Now that we know what Keli is – who is Keli? Its creator says in the language’s documentation that it’s named after his girlfriend. A programming language named after you? Take note: that is true romance!

What do you think about this endeavour? Does it improve upon the tricky Haskell user experience? Does Keli’s syntax hold up and is it user friendly enough to achieve its purpose?

Sarah Schlothauer

Sarah Schlothauer

All Posts by Sarah Schlothauer

Sarah Schlothauer is the editor for She received her Bachelor's degree from Monmouth University, West Long Branch, New Jersey. She currently lives in Frankfurt, Germany with her husband and cat where she enjoys reading, writing, and medieval reenactment. She is also the editor for Conditio Humana, an online magazine about ethics, AI, and technology.

Inline Feedbacks
View all comments