Niels on the Wondrous World of Functional Programming
At Debreuck Neirynck we have been using functional programming for a number of years. Not an obvious choice, but a very conscious one. In the following interview, Niels, Software Developer at Debreuck Neirynck, tells plainly about the wondrous world of functional programming and why it is so unique. Enjoy!
Why is the way of programming as such important?
Niels: “There’s a reason d’être for programming languages. Computers internally use a sort of language that is very difficult for people to understand. You need a programming language as a kind of middle ground to translate between what humans and computers comprehend. The appropriate programming language strongly depends on both the nature of the application you need and simply on the programmer’s subjective preference. Each paradigm has its advantages and disadvantages.”
Every programming language has its pros and cons, which is no different for Clojure. Could you name a few in particular?
Niels: “Clojure is a very expressive, powerful language. You can tell a lot with just a few words. The average expression in the Clojure programming language will represent more than in most other languages. Clojure has little or no syntax (= grammar of language). You are more likely to work with pure functions (meaning “functions” in the mathematical sense of the term, rather than procedures). In this way, you avoid boilerplate code, code that is not about what you aim to express. Furthermore, it is conductive to avoiding (unnecessary) side effects. Each function is isolated, which makes it easier to test. And last but not least: Clojure strongly encourages the use of immutable objects.”
-“Clojure is a very expressive, powerful language.
You can tell a lot with just a few words.”-
Niels: “Of course, there are also disadvantages associated with the use of functional programming languages. A functional model is less explicit about the procedure, somewhat more abstract. Those who prefer spelling out procedures over a more declarative approach will find Clojure code less intuitive.
Debreuck Neirynck resolutely opted for functional programming. Has this helped you become a better programmer?
Niels: “Definitely. It has introduced me to the functional paradigm. And even though the way of functional programming is quite academic, Clojure has proved to me that it can also be very pragmatic. It has given me a tremendous amount of new insights into the field of programming.”
Is quality equal to the chosen programming language? Or can you develop good and bad software in any programming language?
Niels: “Creating valuable software depends on several aspects, not only the chosen programming language. In the first place, the software solution to be developed needs to be considered. Furthermore, it is very important to match the skills of the developer with the programming language used. All these factors combined determine the final quality of the developed software.”
Would you change anything about the choice of Debreuck Neirynck?
Niels: “The main difficulty of using Clojure is that, being a functional language, it’s quite unlike most of the popular programming languages, and it may be tricky to adapt to it. This implies that it is not for everyone. Moreover, in terms of recruitment, Debreuck Neirynck always has to look for very specific job profiles. Something that is not always that easy. But, it’s my prediction that the functional paradigm will become even more important in the future. So, I support every bit of this choice.”
– It’s my prediction that the functional paradigm will become even more important in the future.” –
In case you have to compare Java and Clojure, what are the biggest differences?
Niels: “Without a doubt the type of language. Java is object-oriented, where Clojure is a functional programming language. They share the same Java ecosystem, so Clojure can benefit from all the existing Java code, but the language is completely different. With Java you can say little with a lot of words, with Clojure you can tell a lot with just a few words.”
Inspired by this interview? Convinced by our way of working? Don’t hesitate to get in touch and let’s talk!