Rich Hickey is the creator of Clojure, which is a dialect used in the Lisp programming language. Clojure, often referred to as a general-purpose programming language, comes with an evident focus on the concept of functional programming.

The language has an ability to operate on the JavaScript engines, Common Language Runtime, and Java virtual machine. Consisting of macro system, Clojure also takes codes as data – a feature common in all the Lisp Languages.

History of Clojure Programming Language

Before developing Clojure, Rich Hickey has had a hands on experience of developing a similar .Net Framework project called dotLisp. He had also made three prior attempts to attain an interoperability between Java and Lisp. These attempts included:  the creation of a foreign language interface based on Java for Common Lisp; the development of the Foreign Object Interface for Lisp (FOIL), and the creation of a Lisp-friendly interface to Java Servlets (Lisplets).

In order to successfully develop and publically release Clojure, Hickey spent a total of two and a half years on the language. Most of this time Hickey worked privately on the language with no funds from outside parties. After completely his work on the language, Hickey forwarded an email to his friends in the Common Lisp community, which formally announced the development of the language.

The approach with which Clojure operates is based on the concept of identities. These identities can be referred to as a sequence of immutable values called states. As the states are basically immutable values, therefore, a number of workers can operate on them in a parallel manner. Concurrency, here, can be attained through the effective management of changes from one state to another.

To facilitate concurrency, a range of reference types, which are mutable, are provided by Clojure. Each of these mutable reference times consisted of accurately defined semantics that help in the management of transition from one state to another.

The process of development of Clojure is community driven in nature. All the developments are introduced and managed at the Community website of Clojure. The website provides the users with planning documents for development purposes. In addition to that, it also has an issue tracker which enables the users to file issues associated with bugs. Clojure Dev Google Group is the place where discussions associated with general development of the language occur.

For the submission of development patches, the concerned individual is required to sign the Clojure Contributor agreement. A team of screening members asses and process the JIRA tickets, and Rich Hickey is the final authority to approve the suggested changes.

Job profiles that require this skill