20 comments

[ 0.69 ms ] story [ 6.6 ms ] thread
> Software engineering is what happens to programming when you add time and other people.
An amazing distillation of the craft.
Then a new term is warranted for what happens to programming when we add prompts & agents.
don't we already have the words slop and vibecode
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.
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
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.
Cloudflare says I'm not allowed to view the page. At least they are protected from "attacks."
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.

Yet he is actively making the world worse at Google. Go (lol) figure!
A good read. Except this weird remark:

"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?

Russ Cox is one of the persons behind Xv6 (https://pdos.csail.mit.edu/6.828/2011/xv6.html), an x86 port of Version 6 Unix, which is the version of Unix described in the famous Lion’s book (https://en.wikipedia.org/wiki/A_Commentary_on_the_UNIX_Opera...). Xv6 was prepared for MIT’s 6.828, an undergraduate operating systems course. In this syllabus from 2018 (https://pdos.csail.mit.edu/6.828/2018/overview.html), students are expected to write significant subsystems in Xv6.

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.

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.
The bar used to be pretty low. My father spent a few years writing and selling a system/360 time sharing system in the 70s or so. He was not a self-identified computer person, just a physics student who found a way to make a few dollars.

In the 70s and 80s and 90s so many operating systems from lisp machines to ITS to the bsds... People used to write an OS like people write frontend frameworks now.