In my 25+ yr career in (systems) software engineering, I can count on one hand the number of real paradigm shifts I’ve seen:
- Ubiquitous automated testing, eg unit tests
- Modern network routing fabrics, which made intra-DC bandwidth effectively infinite and intra-DC latency effectively zero for most workloads, Patterson notwithstanding
- SSDs, which combined the speed of memory with the capacity of disk. No more counting seeks!
- Cloud infrastructure
- AI coding
I’m not saying anything new by including AI coding here. I don’t fully know what its long term effects will be. I doubt many of us do. And the industry is obviously far from perfect.
But coming from a late adopter, and a skeptic in general, it’s still very clearly a big deal. And I don’t see those often.
@snarfed.org these are interesting ones! I did a similar list recently, and included OOP and Web development.
the fact that automated testing made the list says a lot about what we were doing before it. just vibes and prayers basically
lots of human QA. so many test plans 🙄
@snarfed.org I’m a fierce critic of the AI industry and the shameful speculation it generates, but I agree with you. Those with excellent programming and functional analysis skills will find a formidable ally in AI.
For now, just think of the incredible results AI has already achieved in the last year in identifying cyber vulnerabilities.
A couple that I noticed:
from Postel’s Law (“be conservative in what you send, be liberal in what you accept”) to paranoid verification of every single input parameter
from everything being in plaintext, to everything being encrypted and signed
Also, at a somewhat lower level – we’ve very much moved from hardware to software (I’m counting intermediates like FPGAs as software here) for fast path processing.
Yes! Ubiquitous TLS (honestly @letsencrypt.bsky.social alone) is another strong candidate. And Postel Was Wrong is a banger