The things I have learnt from Haskell

1. Functors, Monads, Applicative Functors, Monoids are extremely good design patterns, and to me seems like at some point you invent approximations of them if you're not using them

2. Raw recursion should be eschewed in favour of recursive schemes or atleast do folds

3. If Math is the language of clear thought, those closest to it like Haskell ought to be used where clarity is required which is pretty much everywhere in software

4. Composable software has to be based on something more concrete but one-time feel good look good pieces that fit together but a handful of cases, and if a language doesn't back it up with some sort of math structure, then the language is no good. That is why I think Category Theory's place in Haskell as something akin to a first class citizen is extremely important

Where do I use Haskell?

1. When I am not allowed to code in Haskell which is pretty much 99 percent of my projects, I re-do critical pieces in Haskell but Haskell code acts as a clear documentation and my go-to when trouble brews for trouble-shooting

2. The monadic abstractions are the best tools in my tool-set and I use them abundantly and it has paid off quite a bit

Haskell and the Future of software

1. Haskell is extremely difficult and since my first contact with Haskell almost 10 years ago, I've seen people turn away from it because of it seemed too complicated.

2. For those you thinking I am a nut for thinking that this sort of mentality spells doom for the future of software devs remember this, what is the general attitude of the public towards our best tool at modelling reality aka Math? Is it a good one? Heck half of the programming community is still at odds with Math. While you may argue that not everybody needs math, I argue the fact that everybody has this we-don't-need math mentality is the reason a many a things that should have been automated haven't been automated , and loads of people have these bs jobs where all they do is stitch together apis and then call it a day and go home and think they've accomplished something

3. My point: The current average relationship that devs have towards a language like Haskell and it's future descendents is/will be a metric of the state of software now and in the future.

Re: math, composition and universal abstractions

Folks please read https://github.com/hmemcpy/milewski-ctfp-pdf

Re: learning Haskell

Best way is to do it https://github.com/data61/fp-course and https://m.youtube.com/playlist?list=PLly9WMAVMrayYo2c-1E_rIR...