Convince your boss to use Clojure
From OO to Clojure Workshop!
Watch my free workshop to help you learn Clojure faster and shift your paradigm to functional.
Summary: Clojure has been successfully adopted by many companies. There are many resources available by people who did the hard work of introducing Clojure to their team.
Do you want to get paid to write Clojure? Let's face it. Clojure is fun, productive, and more concise than many languages. And probably more concise than the one you're using at work, especially if you are working in a large company. You might code on Clojure at home. Or maybe you want to get started in Clojure but don't have time if it's not for work.
One way to get paid for doing Clojure is to introduce Clojure into your current job. I've compiled a bunch of resources for getting Clojure into your company.
Take these resources and do your homework. Bringing a new language into an existing company is not easy. I've summarized some of the points that stood out to me, but the resources are excellent so please have a look yourself.
Before you begin your quest to introduce Clojure, you're going to need a good strategy. By far the best presentation of a strategy is by Neal Ford. Neal Ford is a Director at ThoughtWorks and has a great strategy for introducing Clojure into an existing company. Watch this video.
- Spread Clojure outside of the company.
- Get a groundswell of people inside the company.
- Use Clojure for things it's great at.
- Get the Clojure jar file included.
If your company happens to be using Ruby, Joshua Ballanco has some great tips for How to Sneak Clojure Into Your Rails Shop.
Sean Corfield helped move a sizeable legacy application to Clojure. He's got some good, sobering advice.
- Be ready to explain the lack of a framework.
- OOP habits are ingrained.
- Don't underestimate the difficulty.
A lot of great advice from someone who's actually done it.
- Find allies.
- Answer the questions.
- Take responsibility.
- Get help.
- Be an advocate.
Some great advice from Logan Campbell, someone who convinced his coworkers to use Clojure at a Post Office.
- Be positive: if they say "We need static typing", say "Great! Clojure has that!" (which it does with Typed Clojure).
- Show them working code.
- Be ready for performance questions.
Craig Stuntz suggests you find hard problems that are hard to solve without functional programming or formal methods.
- Ask around for bugbear problems. They may have been attempted before. They may have given up on ever solving them.
- Offer to spend a limited time on them, using the language and method of your choice. Limited time means low risk.
- Bring sharp tools to the problem---data analysis, modeling, code generation.
- Be sure to play nice with integration.
- Look for places where Clojure can fit outside of production.
- Show tangible benefits.
Material for other developers
Leo Polovets polled Clojurists at Factual and summarized their answers to Why Clojure?.
A while ago, this great post was trending on Hacker News. It explains Why Clojure?.
Material for the project manager
If you'd like a high-level overview of the business advantages to using Clojure, you can do a lot worse than asking Cognitect, the company that develops Clojure itself. They've published a case study, meant for non-tech folks, to understand the implications. It's focused mainly on Datomic, but it touches on Clojure.
Though a little hyperbolic, this post is a good one for the skeptical manager, the one who wonders whether their team can really learn a new technology quickly enough to justify the cost.
For those who like to follow industry trends and what others are recommending, look no further than the ThoughtWorks Technology Radar. It's a compendium of recommendations, published regularly, that takes a realistic view of a constantly changing landscape. Clojure has been rated at Adopt since October 2012. A lot of secondary Clojure technologies are also on the radar, including core.async, om, Datomic, and ClojureScript.
Documentation, Training, Support
I mainly want to show that there's plenty out there and plenty of new stuff coming out, not recommend anything specific.
There's plenty going on with documentation. There are many books available on Amazon. These are all of the same quality as any enterprise Java book.
- Clojure Programming
- The Joy of Clojure
- Programming Clojure
- Clojure in Action
- Mastering Clojure Macros
- Clojure Cookbook
- Web Development with Clojure
- Clojure Data Analysis Cookbook
- Mastering Clojure Data Analysis
- Clojure for Machine Learning
- Functional Programming Patterns in Scala and Clojure
- Clojure for the Brave and True
- Clojure Applied
- Living Clojure
- Clojure Reactive Programming
- Clojure Recipes
- Web Development with Clojure
- Clojure for Data Science
- Clojure for Finance
Videos are an up-and-coming type of training, but there's plenty out there.
Besides these courses, there are often Clojure courses before or after the Clojure conferences.
Besides the normal IRC (#clojure on freenode), Clojurians Slack, Google Group, and Jira, Cognitect offers support.
Clojure is gaining traction. It's fun, it's productive. But it's still a little fringe in larger companies. Though it will still take a lot of work, these resources should help you make a case for Clojure. It's my mission to help people thrive with Clojure. If you're into Clojure and want to do it professionally, I recommend the PurelyFunctional.tv Online Mentoring Program. It's a step-by-step guide, taking you you from Clojure Dabbler to Professional.