►► Audio, Video, and Transcript available:
►► Subscribe on iTunes:
Is there some reason a business would choose Clojure over other languages? Let’s find out!
What is the business value of Clojure? Hello, my name is Eric Normand. These are my thoughts on functional programming.
I was watching a talk by David Nolen the other day. David Nolen is the maintainer of ClojureScript. He’s done quite a lot in the Clojure community.
In the talk, it was to beginner programmers about starting their careers. At the end, he mentioned that he thinks that for a business, the choice of programming language is mostly a hiring decision. The programming language is not going to change the business’s success. It’s mostly about hiring.
I’ve been wrestling with that because I’ve been trying to figure out what the business value of Clojure is. I thought that maybe it has to do with the reduction of risk because Clojure lets you quickly experiment, quickly develop solutions so you can quickly evaluate whether a solution is going to work for you. You’re mitigating the risk that way because you have such a small investment.
I’ve been taking to his idea more and more because I want to explore that more deeply. When you choose a programming language unless it is something super specialized that gives you a huge advantage in the area you’re in. If you choose Ruby and Rails for your architecture because you’re doing quick one-off Web apps, that might give you enough advantage to warrant you choosing that just for the business value.
What he was saying was in the long term what matters is the processes, thinking, the architecture of your system, and how well you program it. I have to agree with that.
When you choose a more obscure language like Clojure, you’re choosing who you can hire, or who you will be hiring. You’re choosing a hiring pool. The advantage of Clojure is that you will be hiring Clojurists and tapping into that community.
To me, it makes a lot of sense. Clojurists are different from Javaists on average. That’s all you can do when you’re looking at programmers as an aggregate. You have to average them out.
Here’s the thing about hiring and getting hired. That ultimately, it’s a numbers game, but you only need to hire one person for your position. You only need one job. Ultimately, at the end, it doesn’t matter how many candidates there are or how many jobs there are that you could get because you only need the one.
If you want to play it as a numbers game like, “I’m going to use Java in my company because I can always find Java programmers,” you’d have to imagine the programmer you’re going to get. There are a lot of Java programmers. Just by the fact that Java is taught at a lot of universities, it might be that programmer’s only real language, only language that they’ve worked in before.
You have to think that is going to affect the quality of the candidate. A candidate who knows several languages, has been part of different communities, and understands things from different angles is going to be a better programmer.
Typically, that’s what you get with a more obscure language like Clojure. This used to be the case for a language like Python. People used to talk about how Python was a good language to hire for.
Knowing Python meant that you were a little bit more curious. You were more willing to learn a new language because you probably didn’t have it at your job. You weren’t paid to do it. You were the programmer who would go out of their way, probably, in their spare time to learn a new language. Probably, that’s the case right now with Clojure.
I do want to talk a little bit about what are the benefits of learning Clojure for the job applicant. David Nolen mentioned this, that on the programmer’s side, the real reason to choose one language over another is developer happiness. There’s also job pool. That’s an important consideration.
Developer happiness is also a real factor. If you’re happy in one language and not another, you should take that into serious consideration when choosing a language. It could make a real difference.
Developer happiness, as far as Clojure is concerned, I think that there are two main reasons that Clojure can increase developer happiness. One is that Clojure has very fast feedback. I believe that it is the language that has the best support for REPL driven development, for interactive programming, for live programming.