4 ms·
I'm not a Haskell user but am a Scala developer and it has the same sort of thing. But I think it is more about the culture than it is about the actual reality
by thinkharderdev 6y ago
I'm not a Haskell user but am a Scala developer and it has the same sort of thing. But I think it is more about the culture than it is about the actual reality of the language.
First, it is often a sort of humblebrag (as the kids say). I am using this language that is SO advanced that I am a mere intermediate after X years of development. Looks how smart I am for using it. That tends to lead people to dramatically over-estimate how hard it is to become productive in the language.
Second, the emphasis on correctness means that the ecosystem goes to great lengths to explain how all the abstractions work internally and how they are grounded in Category Theory. In other ecosystems (such as Java) they seem to be more focused on talking about the interface and the practicalities of using a library. Spring is extremely complicated but you don't see much ink spilled explaining all the internal implementation details.
- mordae 6y agoIt doesn't have to be a humble brag. Some language ecosystems tend to have a lot of DSLs in them. I consider myself intermediate in Haskell because I don't grok Lens. I also consider myself intermediate, because I often can't readily grok what are the compiler devs talking about when they discuss e.g. linear types. I consider myself a Python expert since I can follow PEPs and DSLs with ease. That doesn't mean that Python is a better language. It does not make the same value proposition.
- hocuspocus 6y agoI believe you can be fairly experienced and realize there are many parts of the language and its ecosystem that you don't completely understand. For instance in Scala, I've never written any macro or used something like Shapeless in depth. Spring is a good example too. I used it quite a bit in my junior years and felt like I would never come to master a framework that is so broad (and that felt over-engineered). This doesn't mean you cannot be productive using a subset of the language. There's a balance in what you should allow in a codebase being maintained by a team of varied skillset. Maybe Haskell is on the extreme end here, but the other way (like Python, JS, Go) is even worse in my opinion.
- the_only_law 6y ago> Spring is a good example too. I used it quite a bit in my junior years and felt like I would never come to master a framework that is so broad (and that felt over-engineered). I still feel this way. I work on all kinds of weird / cool technologies on the side and I can’t imagine ever coming to call myself in expert on anything because I only use a subset to solve a problem.