Software, projects & software projects

Clojure Makes Happy

I'm still sitting in on another team. After commenting on the very good mood of the team, someone said “Clojure makes happy”. I agreed, but it also got me thinking. How do other languages make me unhappy? How does this reflect on the team using a given language?

Languages offering inheritance foster discussions about classic design patterns. About type hierarchies, about class names, interface names, generics. These discussions can be incredibly draining. There are no clear cut solutions, you are free to chose your way. Everyone is right, everyone is wrong. We find compromises, often to just finish the discussion itself. People have a hard time separating their feelings across interactions. We went with Bob's composite pattern recommendation. Now Bob finishes the story alone.

Even functional languages let you dive into the abyss. Namely category theory. We argue whether we should use Either over Option. I'm reading up on the IO monad for the eleventh time. Only to forget about its absolute necessity a few minutes later. There is no happiness in that. Only the feeling of lost opportunities. And disgruntled coworkers if one of those things actually makes it into the codebase. Sorry about that comonadic zipper.

The arguments above are exaggerated of course. But they highlight sources of unhappiness and noise. Clojure doesn't have those...except paredit.

Other posts