When people come to Cognitect seeking solutions, we start by delving deeply into the challenge at hand (aging legacy system, new business venture, a need to scale rapidly, and so forth). Together we envision what success would look like - first targeting an ideal world and then narrowing focus to what is achievable given current budgets, schedules, and realities within the broader organization. We find this method of "working backwards" consistently delivers both project and business success beyond what many clients originally thought possible.
For today's complex information challenges, the Clojure language, often paired with Datomic, enables the simplest, most flexible, robust, and least resource intensive solutions.
During the initial review of the proposed architecture, most clients see clearly the benefits inherent in a Clojure-based, Datomic-backed system. In fact, the most common concern among clients who have not previously leveraged Clojure within their organization is whether or not they will be able to either hire new developers or train their existing teams to adopt and expand the delivered system. While Cognitect does indeed offer full-service support options, many companies have recently found building a team of high-performing Clojure developers in-house to be less of a challenge than with other languages. And there’s more - these teams then tend to accelerate the pace of overall company innovation. Here's why:
Myth: Clojure is still for early adopters and start-ups
Over 175 companies have actively advertised their Clojure adoption, and given the broad participation in user groups there are clearly many more organizations using Clojure at some level in their technology stack. A quick scan of various job sites shows Clojure positions at companies like Walmart, Facebook, Staples, Consumer Reports, Salesforce, and Amazon. It doesn't get much more mainstream than that.
Myth: Enterprise applications require large teams to build and support them in production
Why are so many companies embracing Clojure in rapidly increasing droves? As Adrian Cockcroft of Battery Ventures (formerly Chief Architect at Netflix) puts it, more and more developers are learning Clojure and then "producing ridiculously sophisticated things in a very short time."
Walmart's eReceipts team of only 8 developers led by Anthony Marcar built a system to process and integrate every purchase at Walmart's 5000+ stores, including online and mobile data.
We also have Colin Steele, CTO of Roomkey.com, and his small team of developers adopting Clojure from scratch to build a booking site backed by major hotel chains to compete with huge incumbents like Expedia. Within 7 months after launch in 2012 they went from about 1,000 visits per day to 600,000+ visits per day on roomkey.com. He describes Clojure as a technology choice which enables "mere mortal developers to build a highly concurrent system, yielding an enviable user::machine density." In his blog post describing the full development experience, Steele further emphasizes how Clojure lets you do much more with significantly less. When pressed by the Room Key board to explain how Clojure is suited to large programming teams, Steele’s response was that “I never intended us to have a large programming team. Programming in the large is a higher-order 'code smell' ('architecture smell'?) that means you’re doing it wrong. Decoupled, distributed systems mean you shouldn’t be worrying about this problem any more."
Fact: There may be fewer Clojure developers than developers in some languages - but you only need to hire a few of them
Experienced technology managers tell us many of the best developers out there are either already using Clojure or are eager to learn. Back in 2011, when the "early adopter" label may have been more appropriate, Steele remembers how the Room Key team started by "picking off pieces and building them, learning Clojure as we went. It turned out to be a very steep learning curve, but despite that we were doing reasonably well with the new language and environment within a few months." In 2011, Colin Steele didn’t have the option of hiring a team of experienced Clojure developers - so he built a small team of smart developers instead. We already know what happened after that. There are fantastic developers in many languages, but a lower bar to entry can make them harder to identify in crowds of applicants. For many organizations, Clojure isn’t just an advantage for building great systems; it is equally effective for building high-performing teams. Hiring managers tell us Clojure is their “secret weapon. It self-selects for smart developers”.
Fact: The Clojure developer community is growing (rapidly)
While there may be fewer Clojure developers than in some languages, the Clojure developer community is growing rapidly. Clojure conferences have expanded from the east coast to the west coast, and this year to Europe, growing by double digit percentages every year. Surveys show that the two fastest growing segments of attendees are at a Clojure show for the first time and have been using Clojure for less than 2 years. Over the last two years, the percentage of respondents using Clojure in production has jumped from 35% to 75%. And community-sponsored shows and events are springing up all over, like ClojureBridge, which has run 16 events worldwide since 2014, or ClojureTre, which just had 200 attendees in Finland. The community is growing rapidly, with the number of candidates for new teams growing along with it.
In 2015, Clojure is not just a proven source of power. It is also a powerful filter, enabling technology managers at innovative companies to build and support incredible solutions with smaller teams at significantly lower costs. Pretty simple.