Developing GHC for a Living
&gt; 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&#x2F;discussing in circles like HN) to see that it&#x27;s a fallacy. A programming language cannot be perfect because it&#x27;s made for humans, who are not perfect (and runs on computers, which arguably are not perfect).<p>Accepting the fact that there&#x27;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.