https://pldb.com/posts/JohnOusterhout.html
PLDB
[ ]
Languages Features Creators Calendar CSV Resources Blog About Donate
Add Language
scottFalhmanInterview.html * JohnOusterhout.html *
josefPospisilInterview.html
A brief interview with Tcl creator John Ousterhout
by Hassam Alhajaji
Introduction
February 8, 2023 -- Dr. John Ousterhout is a computer science luminary
who has made significant contributions to the field of computer
science, particularly in the areas of operating systems and file
systems. He is the creator of the Tcl scripting language, and has
also worked on several major software projects, including the AFS
distributed file system and the Sprite operating system. John
Ousterhout's creation of Tcl has had a lasting impact on the
technology industry, transforming the way developers think about
scripting and automation.
Interview
Hassam: What is unique about tcl?
Dr. Ousterhout: I would highlight 2 things:
* The first thing is its embeddable nature: I designed Tcl so that
the library could be embedded in applications, with Tcl providing
generic scripting features and the application adding its own
commands to the built-in command set. The boundary between Tcl
and the application is extremely fluid, and applications can
extend Tcl in very powerful ways, such as adding new control
structures to the language. I don't think any other scripting
language has achieved embeddability to the degree that Tcl did.
* The second thing is Tcl's "everything is a string" philosophy.
This played a big role in Tcl's embeddability and made it easy to
extend Tcl in a variety of ways. But, it also carried a
performance penalty; even with a lot of work, Tcl has never
become as efficient as other languages with more traditional
types, such as Python. The string focus is also responsible for
Tcl's unusual command syntax, which some people love and some
people hate.
Hassam: How different would tcl be had you stayed on with the
development team? :)
Dr. Ousterhout: I don't think it would have been very different. Tcl
was quite mature by the time I passed off development responsibility.
Tcl had its heyday in the 1990's, due in large part to the power of
the Tk toolkit and the awfulness of the other X Window GUI toolkits;
Tcl/Tk was the easiest and most powerful way to create GUI apps.
Unfortunately, Tcl didn't make the jump to the Web, and most of the
applications for which people would have used Tcl in the 1990s became
Web applications.
Interesting footnote: the founding of Netscape occurred at the same
time I was deciding where to go in industry when I left Berkeley in
1994. Jim Clarke and Marc Andreessen approached me about the
possibility of my joining Netscape as a founder, but I eventually
decided against it (they hadn't yet decided to do Web stuff when I
talked with them). This is one of the biggest "what if" moments of my
career. If I had gone to Netscape, I think there's a good chance that
Tcl would have become the browser language instead of JavaScript and
the world would be a different place! However, in retrospect I'm not
sure that Tcl would actually be a better language for the Web than
JavaScript, so maybe the right thing happened.
Hassam: As a long time educator, What do you predict the next
paradigm shift in programming languages will be?
Dr. Ousterhout: I don't really know. It used to be that every 5-10
years a major new language came along, but it's been almost 20 or
years since the last interesting new language I can think of (Go).
Maybe others would count Rust, in which case maybe the 5-10 year
interval is still holding. One interesting note on this.
Historically, I think the most widely used programming linkages have
come not from the programming language research committee, but rather
from people who build systems and wanted a language to help
themselves. PL researchers tend to create languages that are useful
for PL researchers: they have interesting theoretical and conceptual
properties (e.g., ML) but aren't usually useful for real systems.
Systems people create languages that are useful for systems builders,
so they get widely adopted. Examples are C, C++ (I think?), Perl,
Java, and Go. I would put Tcl in this category as well, and perhaps
Python also?
[JohnO]
Thank you for your time Dr. Ousterhout!
View source
PLDB - Build the next great programming language * Search * v2023 *
Day 167 * Docs * Acknowledgements * Traffic * Mirrors * GitHub *
feedback@pldb.com