ill-advised ranty programming post below the readmore:
some tools are better than others. that might sound like an incredibly obvious statement, but, somehow, in computer programming, there's a whole pile of people who keep posting variations of "there's no difference between good and bad things".
programming languages are tools. libraries are tools. compilers are tools. there are differences between these tools. some of these tools are, in fact, Bad. again, some ppl might read this and say, "that's obvious". but it's clear to me that this position is relatively commonplace among programmers or at least the type of person who reshares or upvotes discussion about programming across many different websites, communities, and subcultures.
in some ways i sympathize with the position. i've been programming for most of my life. when i was a teenager, i did think: "wow, why can't these people just live and let live. just use whatever tool you like. they're all good if you're a Good Programmer". i have learned better. other people can too. i should also note that my idea of what a good tool is like has changed a lot, repeatedly, over the years, as i've learned more and more. and a lot of that learning would've happened a lot faster if i hadn't been raised by a culture that was willing to accept this.
i shouldn't have to spell it out to this degree, but if there weren't any difference between languages or libraries or so on, there also wouldn't be any difference between old and new versions of them. there wouldn't be any difference in good and bad design choices, so in that case we might as well make decisions about tool design by die roll.
a common extension of all this is the idea if a programming language can do something, that it therefore should do that thing, and that it's completely fine for doing that thing. and since most programming languages are turing complete, most of them can do most things. this is part of where the "they're all good if you're a Good Programmer" nonsense comes in.
this might seem like it's in response to whatever the current month's computer discourse is, but that's because there's been a discourse like this every month since approximately the beginning of time. the reason we keep re-heating these discourses is twofold:
- an overall cultural refusal to accept the basic fact that some tools are bad.
- an overall cultural refusal to cut these arguments off at this basis. they are failing here at the axioms and values. but the rest of us keep trying to argue about the leaves of a tree structure that has "there's no difference between good and bad things" at its root.
so the next time someone tells you they are implementing their multi-threaded entity-component system in dungeons and dragons 5th edition instead of a more appropriate programming language, and that if you disagree you are a bad programmer and a bad dungeon master, realize where they are failing.
(also, as a person who sometimes gets called a Good Programmer, sure,. there are differences in skill and experience and so on. but when the concept is brought up in a discussion it's almost always used to justify complete bullshit. sometimes of the malicious sort, sometimes not.)

