Arjun's Blog

2020: The Start Something New, Enter Haskell

March 04, 2020

Hi! It’s been some time since i wrote something on my blog. a DECADE changed! Lots of stuff happened over the course of last year and i am loving every second of it.

The new decade is upon us and with it comes the promise of new possibilities and exciting events for me and the world (Note: it could’ve got a better start to it than the virus outbreak but ah, i am an optimist, wth). I have some loosely defined ideas on what i’d like to do with it but not quite. Since it’s no secret that programming and computing is an avid interest of mine. I plan to challenge my boundaries of what i know about it (and in the process learn more stuff), even if i do not pursue it professionally.

Over the years, i’ve gotten to a point where i can pick-up new stuff that i’d like to pick-up fairly quickly since its more or less a variation on a previous theme (with a few exceptions / disruptions in a way of doing things), I say this not as a brag but just as a consequence of spending extended time in a field. The Challenge here is the lack of challenge. (So meta, i know).

Over the years, i’ve been fascinated by the functional paradigm of programming AKA Functional programming. I was never really big on the Object Oriented way of doing things, if it could be helped. My current understanding of functional programming was mostly me trying to program with less / no side-effects and composing functions where i can. It has served me well, but i think it’s time to dig a little deeper. So in 2020, one of the things i’d like to do is explore this side of interest better. It could be seen as me looking to internalize a new system of reasoning about things.

There are a number of ways that i can do this on a spectrum of theoretical -> practical. Now i like my theory as much as the next person, but what really gets my engine going is the practical application of the things. It’s fun and exciting, doing stuff in new ways. So the way i went about it is me looking to pick up a programming language that embodies the very words functional programming and making cool stuff with it. I chose Haskell for this.

Why Haskell ?

Here are my reasons for why i chose Haskell amongst a selection of other various fine languages:-

  • Its a Purely Functional Language. No other ways you could probably do things. (i hope ?)
  • Its Statically Typed. Most of the languages that i am good at are of the dynamic nature, it’d be a nice change.
  • It has the impression not being an easy language to learn, to which i say BRING IT ON, i’d like the challenge.
  • It’ll bend my mind in all sorts of weird and interesting ways.
  • A new abstract, high-level tool in the toolbox for if or when i need it. (yay?)

I am sure these reasons could be true for a lot of other languages but for me, i’d like to see what Haskell has to offer first.

How would i go about it

I plan on following haskellbook.com (it’s a 2000 page! monstrosity, but i like the ‘first principles’ writing style.) and share what i liked, what i didn’t, what blew my mind and what i learned.

(let me know of a better resource if you know any.)

Wrapping up

As i see it, This could either be one of the more lasting things i do OR just a complete waste of my time, but i am willing to find out the good, the bad and the ugly of this for myself.

(if you are starting learning Haskell too, or, wanted to start but were waiting on someone to learn with, feel free to reach out.)

Stay Tuned for more updates : )

Best,
Arjun


Written by Arjun Kathuria

You can find more about him here