3 ms·
Reminds me of when we were admonished to use a "real" compiled language rather than an interpreted, GC'd one, lest we lose our ability to reason about the syste
by kstenerud 1mo ago
Reminds me of when we were admonished to use a "real" compiled language rather than an interpreted, GC'd one, lest we lose our ability to reason about the system, cache, and memory.
Which reminds me of when we were admonished to continue using assembly, lest our "real" skills atrophy from too much cushy C development.
Which reminds me of when we were admonished to keep our scope and probe skills sharp, and read and understand the schematics of whatever computer we were on, lest we forget how to diagnose faults in its components.
Which reminds me of when we were admonished to practice calculating in our heads and keeping slide rule skills sharp, lest they atrophy to a calculator.
You don't need to "keep practicing" in order to maintain your understanding.
The best engineers know how our systems work down to more levels, but for average developers producing average software with average impact, average output is acceptable.
- burner54828182 1mo agoApples and oranges
- Razengan 1mo agoReminds of the time when we had to plant our own apple trees instead of buying them from the market, and to get up early at 1 AM to milk the oranges instead of just buying juice
- seizethecheese 1mo agoApples, apple juice, apple concentrate
- coldtea 1mo ago>Reminds me of when we were admonished to use a "real" compiled language rather than an interpreted, GC'd one, lest we lose our ability to reason about the system, cache, and memory. And they were right. People used in interpreted and GC ones lost most if not all the ability to reason about the system, cache, and memory. Today's bloated "1GB RAM for a small form app" apps are the results of this. >You don't need to "keep practicing" in order to maintain your understanding. You 100% need to.
- kstenerud 1mo ago> People used in interpreted and GC ones lost most if not all the ability to reason about the system, cache, and memory. It's not that they lost it, but rather that they never learned it. I didn't lose my ability to reason about those things during the 4 years where I worked in Python and Java. And once again, for average software devs that's fine. Most non-critical software that doesn't perform very complex tasks can be optimized for time-to-market, which of course loses in other areas the business doesn't care as much about (such as bloat). When that's not the case, you hire a specialist.
- Lerc 1mo agoI get the impression that analogies like this are trying to disguise a moral judgement as a practical one. It's clearly absurd to abandon GC languages or to require everyone who uses one to learn assembly. Yes, it could be beneficial to learn the lowest levels of the machine, but with an opportunity cost. Advocates of many such principles are often those who have already paid that opportunity cost and consequently see no downside. There has always been a known trade off with how much you need to know about a system against the practical ability to make something that someone uses. If we talk directly to the practicality issue, what happens when AI can rewrite a program written in a highly expressive, but inefficient, language? A future AI might be able to turn a bloated prototype into a sleek, high performance, program where every byte is justified. Then it would be absolutely true that a programmer who did not know the low level intricacies would not know how to do that for themselves, but would they need to? If they can make the things that they want to make and those things do not have obvious limitations, they could be learning a skill more relevant to the world that they live in. By all means, learn assembly if you think it is interesting. I have learned Asm (and indeed written assemblers) for a variety of systems. I won't hold it against someone if they spend the time figuring out cross entropy instead.
- xgulfie 1mo agoAverage output is acceptable at work, sure, and if all you want is a paycheck then yeah I agree, make Claude write all your code, who gives a damn. This advice is for people who want to learn
- midtake 1mo agoThis is a paradigm shift. If you know basic arithmetic, a calculator doesn't stop you from knowing how to add or multiply. But AI definitely stops you from learning how to reason. So it's not the same at all.
- deleted 1mo ago[deleted]
- sublinear 1mo ago> The best engineers know how our systems work down to more levels, but for average developers producing average software with average impact, average output is acceptable. What if I told you the "best engineers" pretty much all know the same things? The tools they use at work and the code they write to get paid doesn't reflect even half of what they know. There will always be situations where a problem goes deep enough to leverage experiences from outside of the usual work role. What if I told you that your "specialists", AI or not, are going to be objectively far worse at actually getting things done because they don't have the bigger picture in mind? We've seen this race to the bottom in other disciplines before. Software is so special and lucky that all you have to do to prevent this is not use AI while lying to your boss that you are. When the boss finds out, they stop paying for AI and everyone is happy again.
- kstenerud 1mo ago> What if I told you the "best engineers" pretty much all know the same things? I'd say that you need to provide some evidence for this extraordinary claim. > What if I told you that your "specialists", AI or not, are going to be objectively far worse at actually getting things done because they don't have the bigger picture in mind? I'd say that you need to provide some evidence for this extraordinary claim. > We've seen this race to the bottom in other disciplines before. Such as?
- sublinear 1mo agoThe "best engineers" we have right now started their careers when the startup era was hot and they now have 15-20+ years of experience. They wore all the hats while everyone else stunted themselves straight out of school by going to a big corporate office. In that era, the devs at a startup were the "everything people". I've met plenty of web app devs of that vintage who are just as comfortable compiling a linux kernel, setting up a k8s cluster, maintaining 2Us, etc. I've also met plenty of engineers who started out in the opposite direction, worked as app devs, and are now in high level architect or even CTO roles. Anyone who chose to specialize went the vocational route of getting certifications and playing the contractor game. They have never truly handled anything on fire. They never stick around long enough to, and that's the whole point for them. This pattern already happened in the (blue collar) "trades". It started in the late 20th century. Now we have some of the worst built homes, buildings, roads, etc. People will (sort of) put up with a pothole or leaky roof. They will not put up with major infrastructure outages or showstopper bugs that directly impact their minute-to-minute ability to function in modern society. Do we really want to make this even worse with automated AI copypasta pretending to be "engineering"? Nobody is fooled. The cost cutting is hitting rock bottom, and tons of people overexposed to AI in their investments are about to lose their shirts. Your "proof" is all there for anyone to find. Ask anyone outside your bubble.