Having worked in an environment where Java was predominant, bringing Functional Programming - in Haskell - into the table is not that simple. I went on giving a presentation explaining my motives and hopefully answering some sensible skepticism.
The talk was hosted by worth.systems.
Disclaimer: Please understand this was my first open talk in English. Also, if you count correctly the number of times I said ‘ja’ (yes, in Dutch) I might have a price for you :)
Why learning another language if Java will do it? Why spending time and energy learning a language that is so little used in production? Why another paradigm if
procedural object-oriented programming works so well for me? Why bother about such theoretical concepts when inheritance solves all my problems?
These are all reasonable questions for someone first hearing about FP/Haskell. And I get them.
Let me tell you a story to better you explain why I find it worth it:
I started making websites when I was 16. At the same age, I went on an internship and had my first enterprise projects as a web designer, using the unexpected
HTML+CSS+PHP+MYSQL stack. As much as I was happy with being able to deliver the projects I had in hands, I was terrified about the parts I didn’t know.
My reaction to this fear was to lie to myself saying there was not much more to know about programming beyond what I knew already.
Obviously, what I knew at that time often fell short and I was forced to explore a bit more in order to deliver something new. And at every time I had to go out of my comfort zone, I would do the same: Tell myself that it was finished, that there was no more to know.
This, unfortunately, it quite a common behavior in IT. There are endless things to learn in our area and getting overwhelmed is inevitable. It is hard, but closing your eyes and expecting the best is not the solution.
During university, I dropped this attitude and came to peace with the fact that I would have to learn for the rest of my days. More than peace, actually: I rejoiced knowing that I was part of a discipline where I could keep on learning forever. That is not just humbling but also exciting!
And that’s how Haskell plays such a sweet role. Haskell is probably the best language for humbling yourself if you think you know what’s there to know. If you go on learning Haskell, it’s not to get promoted, nor because in a few days you will be programming in such a different language and look smart, neither because you will increase the number of job offers you get on Linkedin.
Learning Haskell, to me, is a matter of embracing the unknown. It’s about spending spend time on something that probably won’t be palpable, that will take a long time to master (I’m far, far from it) and that make us feel lacking brain power. But that, nonetheless, it is still worth it because it will change everything, for better.
Thus sharing my joy about Haskell is not to intimidate but to bring people to embrace this career where it will never be enough and where that is actually is part of the fun!
As I say in the presentation, if you consider programming languages as mere tools, then Haskell probably won’t make sense to you. I don’t believe that, though. At the very least, they are toolsets. But that’d be like saying that Art is just an expression. It’s falling short.
Programming languages can transform our brain, can totally transform the way you see and interpret the world and how you solve problems. There is craft side to it, which takes us to see a deeper level of meaning and purpose on what we do.
That’s why I care about Haskell.