> I’m an idealist, and I believe that a perfect programming language with perfect tooling (or, at least, Pareto-optimal language and tooling) can exist. This is in contrast to people who just see languages as tools to get the job done. For them, a language is probably as good as the libraries available for their tasks.<p>I used to think that way. But it only took me half a decade of professional development (and reading/discussing in circles like HN) to see that it's a fallacy. A programming language cannot be perfect because it's made for humans, who are not perfect (and runs on computers, which arguably are not perfect).<p>Accepting the fact that there's no singular, perfect way to express a given idea has been freeing, actually. I used to constantly chase the dragon, getting hung up on refactoring and refactoring and refactoring, trying to attain that perfect description. I still get caught up in it sometimes. A little bit of that spirit makes for better code. But you have to be able to pull yourself away.
In terms of GHC's evolution, this looks really promising to me:
<a href="http://www.well-typed.com/blog/2019/10/nonmoving-gc-merge/" rel="nofollow">http://www.well-typed.com/blog/2019/10/nonmoving-gc-merge/</a>
I would say I have a beginners understanding of Haskell (proof: <a href="https://bytes.yingw787.com/posts/2020/01/30/a_review_of_haskell/" rel="nofollow">https://bytes.yingw787.com/posts/2020/01/30/a_review_of_hask...</a>) and IMHE Haskell is an academic research language for good reason.<p>For most software, the SDLC is a stream, not tightly scoped like a library or utility. I haven’t seen migration or upgrade plans, docs aren’t really there, links rot extensively, and the strangeness budget is a blank check. It’s not for most developers and it’s not because most developers are “lazy” or “dumb”. I would have loved to use Haskell for my personal projects, but it didn’t satisfy my requirements and I’m sticking to Python.<p>For starters, in Haskell Stack, there’s no uninstall option. You use shell to rm a package. <a href="https://github.com/commercialhaskell/stack/issues/361" rel="nofollow">https://github.com/commercialhaskell/stack/issues/361</a><p>That’s nope territory for most developers.