Clojure development, structure and community

Clojure development, structure and community

When a programmer is interested in exploring a new programming language, one of the most important things to research first is how active the community and the ecosystem around the language are. The era of learning from hardcover books is over, at least to some extent. People nowadays want their questions to be read (or, already found and answered) in StackOverflow. They want a slack/IRC channel where they can hang out and ask questions. And they don’t want to be embarrassed in doing so.
In this post, I will try to cover most of the meta-Clojure important things like community, development stability and the ecosystem around Clojure.

But first, some history.

Clojure is unique in the way it was born. It was written by a single inventor, Rich Hickey. Rich is a seasoned developer with a background in Java, C++, and C#, arguably amongst the most prominent programming languages out there. They are both very similar, also. Both are object-oriented, statically typed and with very complex syntax. After discovering Lisp and falling in love with it he has made a few attempts of connecting Java and Lisp. The main conclusion he derived from those projects, is that he wanted to create a modern, hosted dialect of Lisp that would benefit from the goodness of the hosting language virtual machine (GC) and ecosystem (libraries). He then took a 2-year sabbatical and sat to write Clojure. Alone. When he was finally done, he announced it in a common Lisp mailing list and talked about it in LispNYC in 2007.

Why is it named Clojure?

According to Rich: “The name was chosen to be unique. I wanted to involve c (c#), l (lisp) and j (java).” (in Clojure Google group)

Current structure and ecosystem

Clojure is an open-source project licensed under the Apache 2.0 open source license. Its main homepage and the starting point is clojure.org It is essentially divided into 3 main parts. The core language, and the so-called “Clojure contrib” collection of accompanying libraries. The 3rd part is “clojure.core” libraries. Each of these is a Git repository or a collection of repositories on its own.
Confused? Let’s make some order:

  • The Clojure programming language code is hosted here. Its latest version is 1.10.1 (according to Oct 2019). It is tightly controlled by Rich and is super stable. This means 2 things: First, that implementation bugs are rare and mostly revolve around edge cases in Java interop. Almost all open Jira tickets are feature requests. Second, the language is backward compatible.
  • Clojure core libraries are listed here. They are dependant on the language itself and are contributed by the language authors. They generally should not be of any interest to the common or even advanced Clojure programmer.
  • “Clojure contrib” is a bunch of independently developed repositories, which are owned by the community mostly and are developed independently from the language itself. A good example is the famous “core.async” library that many Clojure programmers love.

Community

Conferences

There are many conferences all around the globe. There is an updating list here. Here is a list of the major ones. Almost all of them record videos and publish them later on their youtube channel.

Chat

help me please!

There are more than 15K users listed on the Slack channel. This is my first place to seek help after I give up googling. I usually find at least 200 of them online at any time. I always got a welcoming warm attitude and valuable answers to my questions there.

The vibrant Google group can be found here.

More

Books, tutorials, videos and tons of other materials are listed on the community resources page.

Sharing is caring!

Leave a Reply

Your email address will not be published. Required fields are marked *

six + eleven =