💾 Archived View for yujiri.xyz › software › objectivism.gmi captured on 2023-09-08 at 16:08:29. Gemini links have been rewritten to link to archived content
⬅️ Previous capture (2023-06-14)
-=-=-=-=-=-=-
There are a lot of people in the software community who express the attitude that neither of two things - languages, tools, frameworks, or style conventions - is better or worse; they're "just different".
Obviously, non-vertical differences exist; there are plenty of ways two things can be better for different situations. But there are also ways a tool or language can just be better than another in general (not even necessarily *strictly* better, but better *overall*, and to a large enough extent that the other should be abandoned).
You do harm by creating alternatives
I see this subjectivism applied to syntax especially often, so let me give an extreme example to show that such a thing as better and worse syntax exists. Imagine a language where it's required to use two tabs as indentation, or one that requires `;;;;` as a line terminator, so that `;` could be valid in an identifier as long as there weren't four in a row. Does anyone really believe that these design choices would be "just different"?
Or imagine language X always uses snake_case for stdlib identifiers, language Y always uses camelCase, and language Z uses both with no pattern, just based on whatever the designers felt like at the moment. Obviously, all other things the same, Z is objectively the worst language because you can't predict which one an identifier will use. It'll harm productivity as everyone constantly forgets what uses which convention.
Some folks did a study indicating that snake_case is more readable than camelCase. Now, it's possible to critique the legitimacy of the study or argue that camelCase taking up less width and keypresses is an advantage that outweighs this, but it *is* a matter of pros and cons, not just personal preference (though obviously readability is affected by what you're used to).
Consider the history of your favorite language. Do you think it was an "improvement" when the last new feature was added? If so, aren't you admitting that the current version is *a better language* than the old one? And if so, why can't another language be better or worse than the current version of yours?
Now, it's possible that two *given* languages are roughly equal in quality, or that they differ in too many non-vertical ways, and which pairs are is a matter for debate. But what shouldn't need to be debated is that it's *possible* to have an objective gap in quality between two mainstream languages. So please, next time you see someone post a criticism you don't like, don't respond that it's "just different". Engage with the argument or shut up.