4 ms·
Very good point about the initial setup tutorial. I really wish there was an official, practically oriented Getting Started tutorial for Haskell that went a bit
by internet_points 2y ago
Very good point about the initial setup tutorial. I really wish there was an official, practically oriented Getting Started tutorial for Haskell that went a bit beyond https://www.haskell.org/get-started/ https://www.haskell.org/get-started/ (which is a good start! but then kind of leaves you hanging and you have to decide whether to LYAH or blogs or some course or whatever, even having to pick one can lead to giving up). Compare with https://go.dev/doc/tutorial/ https://go.dev/doc/tutorial/
There are certainly people who just “click” with languages like Haskell
That does seem to be the case, though I've also seen it click with people I didn't expect it to click with. I think some openness to different ideas and curiosity is the main prerequisite.
Fully agree it's silly that the seemingly "default" Data.Set/Map isn't O(1), though it's not that hard to import Data.HashSet/HashMap instead – if you just know about it..
I find it a bit frustrating to see this though:
Given the nature of the language, until I understand category theory better, I have this feeling I won’t really be able to wield it effectively.
You don't need to know category theory to use Haskell. You don't need to grok monads to use Promises or async/await. You don't need a deep understanding of monoids to use list/string/… concatenation. You don't need to read papers on Typeclasses just to use Interfaces. It just happens to be that there is some analogy there (which has led to the names bleeding over), and those mathematically minded people get excited and write papers and blog posts about it.
All of which is to say that you don't need to know category theory to write Haskell – what you do need to know is that you (as a default) import Data.HashMap instead of Data.Map (or that Data.Vector.Hashtables is even faster), use Text instead of String, avoid lazy IO – Haskell might have more of this lore than other languages due to its age. Though probably not more than C++ :)