Published 2016-06-07
Some unfinished thoughts follow.
I hold the opinion that better is better than worse, and that the betterness and worseness of things like programming languages, libraries, and frameworks is, while often context dependent, and not a single value, still often an observable thing.
There is a very common view that seems to be in an impossible to pin down superposition between worse actually being better than better, a misunderstanding of the adage that only a poor crafstman blames their tools1. It is commonly used to mean that good tools are somehow a luxury that a good craftsman does not need at all - and so, if poor tools impede your work, you must be a poor craftsman. So, this is a very conditional defense ...
A thing that irks me is denial. That is, when people claim they are not...
What is the actual scope, actual budget etc - sometimes it is not possible to do a good job within those constraints. So, get sign off to do a bad job; this is fine2.
I have been working with languages, technologies, stacks that I have hated for more than a decade. You do the thing anyway, because you really want to do the thing.
Sometimes there is a better way; iterated projects, large enough budgets, or (very occasionally) the existence of something that already actually works for what you want to do. There is no excuse here - you should use/build the good thing instead of the tire fire.
An aside about gatekeeping, -isms, taste, tension between real virtues and harms. Accessibility of new programming, best-likely-alternatives...