137: Software Design with John Ousterhout
To build anew or to rebuild? Many developers have a knee-jerk reaction to start building existing software systems from scratch because they think that is the easiest way forward.
Today, we talk with John Ousterhout. John is the Bosack Lerner Professor of Computer Science at Stanford University. His current research focuses on new software stack layers to allow data center applications to take advantage of communication and storage technologies with microsecond-scale latencies. He is the author of the book "A Philosophy of Software Design", co-creator of the Raft consensus algorithm, and creator of the Tcl scripting language and the Tk toolkit. He tells us about the software designs of legacy systems, why incremental changes of legacy systems are inevitable, and how to resist the impulse of rewriting large software systems from scratch.
When you finish listening to the episode, connect with John on Twitter, read his book, and join his discussion group on software design.
Mentioned in this episode:
John on Twitter at https://twitter.com/johnousterhout?lang=en
John’s profile at Stanford University at https://web.stanford.edu/~ouster/cgi-bin/home.php
A Philosophy of Software design at https://www.amazon.com/Philosophy-Software-Design-John-Ousterhout/dp/1732102201
Raft Consensus Algorithm at https://raft.github.io
TCL/Tk at https://www.tcl.tk/about/language.html
John’s Software Design Discussion Group at software-design-book@googlegroups.com