From Python to Clojure (and FP): a newbie's tale by Eleonore Mayola
- Audience level:
Python is widely used but can be limiting. When switching to functional programming, Clojure is quite to Python. I'd like to share my journey of learning Clojure as a junior Pythonista. My best advice includes meeting the Clojure community, using online resources and getting the right tools to dive into a sea of parentheses! Such an experience will help you write more concise code.
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. .... "