Just use Clojure already!

November 10, 2017    —    3 minutes read

clojure kotlin idris

xkcd joke
Lisp as a secret weapon

I hear a lot of talking going on about Kotlin around me lately.

There’s no doubt that since Kotlin v1.0 has been released last year, a lot has happened around it from the Google announcement that Kotlin would benefit from first class support on Android, up to the hiring of Jake Wharton (a figure in the world of Android developers).

I’ve never been very enthusiastic about Kotlin, but my colleagues at MonkeyPatch seem to be following the hype (muahaha…) and are becoming more and more addicted to it.

Igor offered to make a live demo in order to show me what it is they (he) like about Kotlin.

During his presentation I’ve noticed a few points that I disliked, but before jumping to conclusion I decided to dig a bit further, reading Kotlin in Action during vacations two weeks later.

I also asked on our private Slack team: “What is Kotlin’s value proposition?"

Amongst other small things, the consensus begun to build: “It’s a better Java than Java”
Exactly what I feared.

To fulfill the promise made in this tweet, I took it as a game to code the same code example Igor showed me in Clojure in order to return the favor to my colleagues.

And I’ve decided to start a series of blog posts about Clojure’s features and Kotlin’s features in order to express why I don’t see the later being that much of an improvement, despite its growth in popularity.

But using Clojure is not like riding on unicorns all day long either.
Although I fail to see if some other new languages solve real problems or just add more puzzles to solve to our daily share or incidental complexity, I will address some pain points I’ve encountered too in Clojure.


This post was actually in draft form since September 15th (I screwed up my publication planning) and in the mean time I’ve had many occasions to express my “obsessive enthusiasm” of Clojure.

And the static typing and type systems aficionados around me (who seem to be legion, interestingly) have come to discover and appreciate Idris and its dependent types:

I remember having heard about Idris around summer 2016 in this podcast.
I even added the episode to my favorites: which means I wanted to get back to it and listen again later.

It’s nice to have people around ready to talk about these stuff.
This tweet made me realize it would be a good way to also inject a bit of Idris dependent types and interactive editing features in the mix and see how Clojure compares on the matter (Kotlin being out of the equation here).

I hope this post will be the first of a series where Igor and I (and maybe Frederic on Idris?) might go back and forth, answering each other. It’s up to them.


This blog uses Hypothesis for public and private (group) comments.

You can annotate or highlight words or paragraphs directly by selecting the text!

If you want to leave a general comment or read what others have to say, please use the collapsible panel on the right of this page.


Scroll
to Top