John Ousterhout

John Ousterhout, the original author of Tcl and Tk is currently a professor of computer science at Stanford University .

See Also

History of Tcl and Tk, John Ousterhout
Ousterhout's Dichotomy
John's observation, made in 1998, that a fundamental shift from systems languages to scripting languages was occurring.

Other Work

An operating system.
Log-structured File System
Magic VLSI
A venerable VLSI layout tool that influenced the development of Tcl.
Magic VLSI Layout Tool
Raft Consensus Algorithm
Founded in 1992, produced Perspecta Presents, a tool for creating and displaying presentations.


{A brief interview with Tcl creator John Ousterhout} {Hassam Alhajaji} {2023 02 08}
{John Ousterhout on A Philosophy of Software Design} {Software Engineering Radio} {episode 520} {2022 07 12}, {host {Jeff Doolittle}}


Can Great Programmers Be Taught? , 2021-01-21
An interview and discussion.
A Philosophy of Software Design , Talks at Google, 2018-07-20
A presentation related to the book, A Philosophy of Software Design.
If you had to pick one idea, one concept that's the most important thing in all of computer science, one thing that threads through every aspect of computer science from AI to systems to theory... what would you pick? What I would say is problem decomposition. How do you take a complicated problem or system and chop it up into pieces that you can build relatively independently?
2015 Keynote Talk


BOOK Tcl and the Tk Toolkit
Scripting: Higher Level Programming for the 21st Century , IEEE Computer Magazine, 1998-03
The article that layed out Ousterhout's Dichotomy.
An Overview of Tcl and Tk
Writing Tcl-Based Applications in C
Based on John's powerpoint tutorials.
Building User Interfaces with Tcl and Tk
Based on John's powerpoint tutorials.
An Introduction to Tcl Scripting
Based on John's powerpoint tutorials.
postscript versions of John's powerpoint tutorials
A Radical Proposal: Replace Hard Disks with DRAM , 2015-10-26
A Philosophy of Software Design


From My Favorite Sayings

  • "The greatest performance improvement of all is when a system goes from not-working to working."
  • "[T]he primary design criterion for software should be simplicity, not speed."
  • "Use your intuition to ask questions, not to answer them."
  • "The most important component of evolution is death."
  • "Facts precede concepts."
  • "If you don't know what the problem was, you haven't fixed it."
  • "If it hasn't been used, it doesn't work."
  • "The only thing worse than a problem that happens all the time is a problem that doesn't happen all the time."
  • "The three most powerful words for building credibility are 'I don't know'."
  • "Coherent systems are inherently unstable."

Previous location (2001) of Ousterhout's homepage.
Lightning Fast Builds for Embedded Software Developers
Was a webinar about Electric Cloud's make acceleration software that took place on 2004-10-06. It may still be available behind the register wall.


The A-Z of Programming Languages: Tcl , Computerworld, 2009-05-08
An interview between John and Kathryn Edwards.