John K. Ousterhout


Biographical Information

John K. Ousterhout is founder and Chairman of Electric Cloud, Inc. He is also creator of the Tcl scripting language and is well known for his work in distributed operating systems, high-performance file systems, and user interfaces. Ousterhout received a BS degree in Physics from Yale University in 1975 and a PhD in Computer Science from Carnegie Mellon University in 1980. He was Professor of Computer Science at U.C. Berkeley from 1980-1994, Distinguished Engineer at Sun Microsystems from 1994-1998, and founder and CEO of Scriptics Corporation from 1988-2000. Ousterhout is a member of the National Academy of Engineering and a Fellow of the ACM. He has received numerous awards, including the ACM Software System Award, the ACM Grace Murray Hopper Award, the National Science Foundation Presidential Young Investigator Award, and the U.C. Berkeley Distinguished Teaching Award.


Tcl and Tk

For information about the Tcl scripting language and the Tk toolkit, see the home page for the Tcl Developer Xchange, a site dedicated exclusively to Tcl tools, applications, and services.

Contact Information

The best way to contact me is by e-mail. My login is "ouster" and my company address is "electric-cloud.com"; concatenate these with an "@" to produce an e-mail address (I haven't included the complete e-mail address here in order to keep spammers' Web-scanning software from identifying my e-mail address). Please help me avoid spammers by not publishing my e-mail address on the Web. It's fine however, to publish the location of this Web page.

Name Pronunciation

In case you are wondering how to pronounce my last name, it's OH-stir-howt. This makes sense only if you know that the original Dutch version of the name (many generations ago) was Oosterhout.

Miscellaneous Stuff

  1. Startup company culture: a document I wrote to encourage a particular culture at Electric Cloud.
  2. How to make decisions: describes an inclusive, consensus-based approach to making decisions that has worked well for me.
  3. Favorite sayings: general ideas that I have found useful over the years.
  4. Fortnight milestones: a simple approach to managing software projects that worked well for us at Electric Cloud.
  5. Tcl history: the story of how I invented the Tcl scripting language and how Tcl and Tk evolved over the years.
  6. Some notes about my RSI problems and how I have dealt with them.
  7. Scripting: Higher Level Programming for the 21st Century This white paper discusses the difference between scripting (in languages such as Tcl) and system programming (in languages such as C and Java). It shows why scripting languages are fundamentally better than system programming languages for gluing tasks such as GUIs and enterprise applications, and why the importance of scripting has increased in recent years and will continue to increase in the future. The paper was published in the March, 1998 issue of IEEE Computer.
  8. Why Threads Are A Bad Idea (for most purposes). This was an Invited Talk at the 1996 USENIX Technical Conference (January 25, 1996). The talk compares the threads style of programming to an alternative approach, events, that use only a single thread of control. Although each approach has its weaknesses, events result in simpler, more manageable code than threads, with efficiency that is generally as good as or better than threads. Most of the applications for which threading is currently recommended (including nearly all user-interface applications) would be better off with an event-based implementation. The slides for the talk are available in PowerPoint or PDF format. There isn't a written paper that corresponds to this talk.


Last modified: October 19, 2007