He puts words around what I've been feeling for the past 6 months or more:
> Ousterhout introduces the term “tactical tornado” for a programmer who churns out tons of working but overly complex code that doesn’t fit well into the existing system. Worse, a bad manager often sees a tactical tornado as the most productive programmer on a team, failing to recognize the complexity and code debt left behind for the rest of the team to clean up. If we aren’t careful managers, AI agents can easily become the ultimate tactical tornadoes.
pbohun 1 days ago [-]
Russ also has a great blog, with the most recent entry on fast floating-point printing and parsing. I believe these performance improvements have landed in the latest version of Go.
https://research.swtch.com/fp
dchest 1 days ago [-]
I recently learned that Russ also wrote software for The On-Line Encyclopedia of Integer Sequences (https://oeis.org) and is the president of the OEIS Foundation.
shaftoe444 2 days ago [-]
> Software engineering is what happens to programming when you add time and other people.
Cthulhu_ 1 days ago [-]
The book Software Engineering at Google goes into this (all factors of programming at scale / over time), worth a read.
"It used to be that if you could get a basic operating system coded and running, that was an indirect proof that you understood the basics of how operating systems worked."
How many -- and we are even supposedly talking about students -- have coded an operating system and got it running?
I think many good computer science programs offer a similar course where students make modifications to an open source Unix-like OS like Xv6, Minix, Linux, or one of the BSDs. I took such a course at Cal Poly San Luis Obispo in 2008.
However, I don’t know of any undergraduate programs where students are required to code an entire OS from the boot loader all the way up to basic drivers. Building an OS is part of the final chapter of From NAND to Tetris, so perhaps there might be some universities out there that do require their students to write an OS from scratch as part of the larger curriculum.
tracerbulletx 5 hours ago [-]
That's not weird? We did that in my OS class. Also even if you didn't the point still holds that the output was defacto validation of understanding.
AnimalMuppet 8 hours ago [-]
I know of schools where that was part of the CS curriculum. I don't know if you couldn't graduate without it, but most people didn't.
jruohonen 8 hours ago [-]
> part of the CS curriculum
Well, maybe in the old days, when computers were simple (and even then, it would've been a very tough take in a curriculum).
pjmlp 8 hours ago [-]
Depends if you consider 1990's computers simple.
On my degree, we had to implement compilers, db system with B-Tree indexes mapping into i-nodes, extend an existing toy OS with cooperative multi-threadeding, and device drivers for PC floppies.
In digital circuits design, we got to create our own tiny CPU, and besides the digital design, some folks did the optional part of actually implementing it on a breadboard.
Among several other projects.
When a Software Engineering degree is 5 years, there is plenty of time for such stuff.
jruohonen 8 hours ago [-]
While not explicitly related to the topic any more: yes, things surely have changed, and I am not sure for the better. I suppose that was also what Cox was saying between the lines at least to some extent.
tracerbulletx 5 hours ago [-]
You can still write a simple OS on a modern computer, a lot of times its done using a virtual machine though to make iteration faster. It's not like rewriting linux or something, its just standing up the basics of machine abstraction.
SA9G 1 days ago [-]
I love the "Tornado" term and "software debt"... worked with a few over the years, fixed the bug but broke the paradigm. Well articulated wisdom.
pluralmonad 24 hours ago [-]
Cloudflare says I'm not allowed to view the page. At least they are protected from "attacks."
mr_big_bowls 14 hours ago [-]
[dead]
fenestella 23 hours ago [-]
[flagged]
Transformanshen 24 hours ago [-]
Solid interview but honestly a bit boilerplate in parts. The bit about "program death" and Naur's theory is gold though, even worth re-reading every few years.
His take on AI feels a bit cautious though. I think he's underestimating how fast tactical tornadoes are gonna become the default just because managers love seeing shit get done fast, even if it's messy...
unpopularopp 17 hours ago [-]
Yet he is actively making the world worse at Google. Go (lol) figure!
Rendered at 22:33:42 GMT+0000 (Coordinated Universal Time) with Vercel.
> Ousterhout introduces the term “tactical tornado” for a programmer who churns out tons of working but overly complex code that doesn’t fit well into the existing system. Worse, a bad manager often sees a tactical tornado as the most productive programmer on a team, failing to recognize the complexity and code debt left behind for the rest of the team to clean up. If we aren’t careful managers, AI agents can easily become the ultimate tactical tornadoes.
And, yep, it's worth a read.
"It used to be that if you could get a basic operating system coded and running, that was an indirect proof that you understood the basics of how operating systems worked."
How many -- and we are even supposedly talking about students -- have coded an operating system and got it running?
I think many good computer science programs offer a similar course where students make modifications to an open source Unix-like OS like Xv6, Minix, Linux, or one of the BSDs. I took such a course at Cal Poly San Luis Obispo in 2008.
However, I don’t know of any undergraduate programs where students are required to code an entire OS from the boot loader all the way up to basic drivers. Building an OS is part of the final chapter of From NAND to Tetris, so perhaps there might be some universities out there that do require their students to write an OS from scratch as part of the larger curriculum.
Well, maybe in the old days, when computers were simple (and even then, it would've been a very tough take in a curriculum).
On my degree, we had to implement compilers, db system with B-Tree indexes mapping into i-nodes, extend an existing toy OS with cooperative multi-threadeding, and device drivers for PC floppies.
In digital circuits design, we got to create our own tiny CPU, and besides the digital design, some folks did the optional part of actually implementing it on a breadboard.
Among several other projects.
When a Software Engineering degree is 5 years, there is plenty of time for such stuff.