IDE-friendly functional programming with Keli’s simple syntax
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
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.
- Multiple dispatch
- Pure functional programming
- Strong type safety
- Easy IDE integration
- “Nearly” homoiconic
- Similar syntax minimalism based on Smalltalk’s message syntax
- Magic expressions
Read about the lexical structure in the documentation.
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.
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?