It's a different mindset and one that is no longer useful.
It's a different mindset and one that is no longer useful.
I disagree. Sure, 6 bytes is approximately free in most contexts, but 100MB is not free, and 5GB is even less free.
But more importantly, writing code under constraints can force good behavior. For example, BIOS is a legacy mess but it’s a small, self-contained legacy mess that fits in a few kB. Compare to UEFI, which is unbelievably complicated and bug-ridden. A mess like UEFI could not have fit within the constraints of BIOS.
This is not to say that writing obscure code to save a couple bytes of source file size is at all worthwhile any more, but the idea that one should constrain bloat (design bloat, code bloat, executable bloat, network bloat, etc) is very much still valuable.
While user facing programs are not faster by any means, computers got faster in some aspects after all.
Never again.
My preferred line-width for code would be 80 characters, not including indentation for the line, with a maximum of 120 characters including indentation.
CMMetadataFormatDescriptionCreateWithMetadataFormatDescriptionAndMetadataSpecifications
What your greybeard might have been talking about was to do with interpreted languages where the interpreter had to parse through the code in some situations when performing a jump/goto. This meant that the more characters there were between the jump origin and destination, the slower execution was. I remember this being a factor in early 8-bit BASIC implementations, leading to a desire to make programs as terse as possible to achieve fast execution. Later implementations tokenized the source before execution, avoiding that problem.
He started these things with punched cards, and worked at the prominent companies of the time (like IBM and HP), and seen tons of bizarre computer architectures on the way like registerless processors.
He might be recalling a very specific example, or about a very slow system, but I remember the conversation well.
That thing has been probably sorted out by the mid of 90s, but I was just starting programming back then.
Oh, I'm a proud member of "descriptive variable name mafia", but not affiliated with the Java branch. They're a different breed. On the other hand, being written real math in C++ (differential equations), having three letter variable names for everything is equally painful. :)
So, saving as many bytes as possible is still very relevant.
That attitude has got to die in an age of everything being exploited by bad actors. Anything that has any form of networking should have regular replacement at least of the control plane components budgeted in from the start.
The longer our devices can last the less ewaste we generate. It may not be the easiest to secure, but it isn't impossible.
You're not going to find a 30 years old machine that controls the pumps of nuclear reactor on the internet.
Stuxnet would like to have a word with you. Airgap isn't enough to prevent malware from spreading.