Programming languages are interesting things. I really like that we call them “languages”, because it describes the differences between them really well. For example, everything you can express in a Germanic language, you can express in a Romance language, even if it might be considerably more verbose. And speaking in one language might cause you to think about the world in a different way than in another language.
My favorite language currently is the “intriguing” Haskell: a lazily-evaluated, functional programming language with a robust and extensible type system. But if I weren’t using Haskell, I would probably reach for Python. It’s easy to understand and flexible enough to do what I want it to do with minimal effort. These are all good things; as a programmer, you want to use tools and languages that make your code understandable and easy to modify.
So why would I reach for Haskell, when Python is easy enough to understand and use? What Haskell provides, in my opinion, is confidence in my code. Specifically, I really love the following features in Haskell, each giving me more confidence in the code I write:
- Strong type system
- Data-first approach
- Referential transparency
Over the next few blog posts, I will be going over each of these points and answer the following questions:
- What is X, at a high level?
- Why should you care about X? What problem is it trying to solve?
- Can you do X with today’s popular languages?
- How does Haskell do X? How does it compare with those languages that can do X?
You might be wondering, why am I writing these posts? “Get back to the terrible drawings and iffy explanations on hot topics!” you might say. Primarily, I want to consolidate my thoughts on why I love Haskell, just for myself, so that I can finally put my nebulous affinity towards Haskell into words. It’s always frustrating when people ask why you like something and your ability to speak kinda just leaves you hanging out to dry.
Stick around, the first post in the series is coming out soon!