Python is a popular and widely used programming language but its use is limited in certain cases. Concurrency is one of those cases when people look for an alternative. It’s actually what happened at the start-up I work at before I joined. The co-founders looked for a solution in a functional programming language and chose to use Clojure. Functional programming is now implemented in most programming languages and functional languages are getting more and more popular. For a junior developer learning a functional language as her/his second programming language completely make sense and I was up for the challenge! Clojure is not so different from Python in its readability and might be one of the easiest functional languages to learn for a Pythonista. I would like to share my tips and tools I used for learning and contributing to a code base in Clojure.
There are several online resources to understand the paradigm of functional programming. The same can be said regarding Clojure but a good way to learn aside from diving into a codebase is to take part in a community. The Clojurians are much fewer than the Pythonistas but they are equally friendly. They are looking forward to grow their community and their meetups and dojos are well suited to beginners. At some point you have to throw yourself into this sea of parentheses so you’d better be well equipped! In that aim Emacs is by far the best suited text editor. After customising it with the right tools you shall fear no orphan parens! This experience will help you progress and focus on writing more concise code with short and clear functions. You will be more comfortable and curious about implementing the functional features of the Python language. Getting always closer to the Zen of Python: " Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. …. "