Written by Georgia Anunciação
Reviewed by Robert Randolph
Clojure is a dialect of Lisp that has a code-as-data philosophy and a powerful macro system. It is a simple and dynamic programming language that was developed in 2005.
In 2020, Cognitect, the company sponsoring and maintaining Clojure, joined Nubank. Do you want to know what happened during the last 15 years, what changed with Nubank’s arrival and what is yet to come? Keep reading this article!
2007: The Release
Clojure was developed in 2005 by Rich Hickey (currently a Distinguished Software Engineer at Nubank) and released to the developer community in 2007. When Clojure was designed, the goal was to create a widely accepted language that supported a simpler programming model than those available at the time.
Programming was becoming too complex and there was a need for a new tool for professional development. State management was becoming unmanageable after a certain point. According to Rich:
When programming, people no longer pointed at the complexity of the problems we were trying to solve but pointed at the complexity of the tools we were trying to use.
The language should be fast enough to solve problems that programmers would tackle with Java or C#, for example. The idea was to have a compiled language that did not require an interpreter. It should be simple enough with a small library that programmers would think, “I can use Clojure here.” Keeping it small was an objective and remains an objective.
Simplicity gives you the ability to focus on the problems you want to tackle in the world or in your organization. It allows you to think about the problem, not the technology. Go fast, and focus on the customer and where the business is going.
2009-Now: The Adoption
Since Clojure is an open-source licensed language, several contributors have been involved in the development of the language and its features. The first book on Clojure was published in 2009 by Stuart Halloway and is now in its third edition. According to Stuart:
I came to Clojure looking for simplicity, power, and focus. Clojure’s support for these objectives has been unwavering, and Clojure’s rationale is pretty much the same as it was in 2007. Over the last fifteen years, I have been delighted to also see (and help foster) Clojure’s emphasis on stability, respect, and stewardship. The Clojure team’s ideals for how people should collaborate to build and maintain open source software have been just as important to Clojure’s success as its technical merits.
In the fall of 2010, the Clojure team created the first Clojure conference – the Clojure Conj. When attendees were asked if they used Clojure for work, only a few people came forward. Since then, the conference has been held almost every year, and each event more hands are raised when asked if they use Clojure for work. Due to the pandemic, the Clojure Conj is not occurring this year, but will take place again in 2023 on April 27th and the 28th in Durham, North Carolina.
In 2010, developers began working on a new database system that was released in 2012, Datomic. It was a database system that presented the entire database to the developer as an immutable value at any point in time. Datomic was fully implemented in Clojure, and Clojure’s features greatly facilitated rapid development.
In 2013, Cognitect was created from a merger of Relevance, a consultancy founded by Stuart Halloway and Justin Gehtland, and Metadata Partners, a consultancy founded by Rich Hickey. They are all currently part of Nubank’s engineering team.
Cognitect then became — and remains, within Nubank — the sponsor and maintainer of Clojure. According to Alex Miller, who joined Cognitect and the Clojure team in 2013:
I had a long history of working with Java and the JVM across several companies. In 2010 I was hired to develop a new series of products. We fell in love with the flexibility and simplicity of Clojure and found it to be a huge differentiator versus our competitors.
In 2013 I had the opportunity to join Cognitect and the Clojure team, serving as a core team member and a liaison with the greater Clojure community. It has been a great joy to contribute to the growth of Clojure and to collaborate with a community bursting with great people and ideas.
In 2020, Cognitect joined Nubank and Nubank expanded the funding of Clojure development. Nubank is now the world’s largest digital bank with more than a thousand microservices written in Clojure and uses Datomic as its main database system. Nubank chose Clojure because it is immutable and idempotent, has a declarative format, and provides small and pure functions; it was an obvious choice because of its simplicity in the programming process. According to Rich Hickey:
People who adopt Clojure expect to find talent or else be able to train people who have no experience with Clojure. This is part of the story of Nubank. Most people assume they need to find experienced people, of course experienced people are great, but Clojure is easy enough to learn. The adoption is as easy as you make it, and many of the people who have learned Clojure don’t want to use anything else.
Just like Nubank, Clojure is a strong proof that simple works.
The plan for the future of Clojure is to retain the compatibility with the existing programs and also continue to think about how to make Clojure easy to adopt. In terms of growth, it is possible to view Clojure applied in more domains, such as Data Science.
Simplicity gives you the ability to focus on the problems you want to tackle in the world or in your business; it allows you to think about the problem, not the technology. According to Edward Wible, Nubank’s co-founder:
Starting out as a young company (and a young team), Clojure’s opinionated design and ambition to eliminate entire categories of accidental complexity set us on the path to build a principled, thoughtful engineering culture. Seeing Clojure’s wisdom scale up orders of magnitude and influence a company of (now) thousands of engineers is nothing short of remarkable. We are just getting started at Nu but we continue to stand on the shoulders of giants.