there is less justification for it now when most writing is done by computer.
Ah, but most reading is still done by humans, and humans are good at recognizing small identifiers and mapping them to large concepts. That’s what words are, and acronyms are really halfway-words (with a few, like laser, being promoted to real words mostly by virtue of their pronounceability and resemblance to other words).
Unfamiliar acronyms are difficult to parse, just like unfamiliar words. But familiar acronyms enhance readability. This is especially true when dealing with things that have clunky True Names, like many organizations (everyone refers to International Business Machines and the National Aeronautics and Space Administration by their acronyms), or in technical fields where many complicated concepts have to be referred to in quick succession.
In my line of work, I’m not averse to typing out “member function template of a class or class template” when necessary, because sometimes that level of specificity is necessary and I don’t have a better name (nobody attempts to make it into an acronym). But I frequently refer to the STL (Standard Template Library), CRT (C Run-Time [Library]), RVO (Return Value Optimization), NRVO (Named Return Value Optimization), ADL (Argument-Dependent Lookup), RAII (Resource Acquisition Is Initialization), ODR (One Definition Rule), and the big dog, SFINAE (Substitution Failure Is Not An Error; always hilariously pronounced, sometimes “sss fee nay”). I could write those things out in full (and I do when introducing people to the hall of mysteries), but it would actually make things much harder to read. My intended audience knows what these things are, and isn’t going to confuse them with St. Louis, the Chinese Remainder Theorem, etc.
Fixed that for you.
Ah, but most reading is still done by humans, and humans are good at recognizing small identifiers and mapping them to large concepts. That’s what words are, and acronyms are really halfway-words (with a few, like laser, being promoted to real words mostly by virtue of their pronounceability and resemblance to other words).
Unfamiliar acronyms are difficult to parse, just like unfamiliar words. But familiar acronyms enhance readability. This is especially true when dealing with things that have clunky True Names, like many organizations (everyone refers to International Business Machines and the National Aeronautics and Space Administration by their acronyms), or in technical fields where many complicated concepts have to be referred to in quick succession.
In my line of work, I’m not averse to typing out “member function template of a class or class template” when necessary, because sometimes that level of specificity is necessary and I don’t have a better name (nobody attempts to make it into an acronym). But I frequently refer to the STL (Standard Template Library), CRT (C Run-Time [Library]), RVO (Return Value Optimization), NRVO (Named Return Value Optimization), ADL (Argument-Dependent Lookup), RAII (Resource Acquisition Is Initialization), ODR (One Definition Rule), and the big dog, SFINAE (Substitution Failure Is Not An Error; always hilariously pronounced, sometimes “sss fee nay”). I could write those things out in full (and I do when introducing people to the hall of mysteries), but it would actually make things much harder to read. My intended audience knows what these things are, and isn’t going to confuse them with St. Louis, the Chinese Remainder Theorem, etc.