LJ talks to the creator of Tcl/Tk about the port of TclPro to Linux.
John Ousterhout provided the Open Source community with the freely available Tcl scripting language and its companion toolkit Tk. These days he is busy running his company Scriptics, where he is developing commercial tools for use in developing Tcl/Tk applications. I talked to him by phone in December 1998, when Scriptics released TclPro 1.1 for Linux.
Marjorie: The first thing I would like to know is what is the big deal with porting to Linux? Haven't Tcl products always worked with Linux?
John: The big deal! You have to distinguish between Tcl the language and the TclPro product. Tcl the scripting language, its toolkit Tk and all the various extensions available for them have worked on Linux for years, probably five years or more. They are present on most of the popular Linux distributions, various CDs by Red Hat and others. The news we are talking about right now is our company's TclPro product, which is a set of development tools. We have just made a new release that supports Linux for the first time. Our previous releases did not support Linux, although you could run Tcl programs on Linux, our development tools which make it easier to develop Tcl scripts were not yet available to you.
Marjorie: What operating system were they running on?
John: Scriptics is a fairly young company—we've been around just about a year now. We released our first product, TclPro 1.0, in September and it ran on Windows 95 and 98, NT and two UNIX variants, Solaris and HP-UX. We thought about including Linux support from the start, but we guessed that since Linux was a free platform that not many people would be interested in buying products for it. The TclPro Toolset is a commercial product.
So, we didn't initially support Linux. We thought we'd probably do it eventually, just not right away. Then as soon as we made the first beta release last summer, we were inundated with requests for Linux—it was truly a pleasant surprise to see how much interest there was from the Linux community. It began to appear to us that, in fact, Linux people are actually interested in this kind of tool and would even be willing to pay for it.
Marjorie: It's amazing, isn't it?—that they'd be willing to pay!
John: Well, my take on this is that Linux may have started off with a community of gung-ho users who were attracted by the freeness of it. I think more and more people are now using Linux because of the sophisticated features and reliability it provides, and the fact that it is free is a bonus. People are willing to pay for software that adds value to their Linux systems.
Marjorie: I think they are too, definitely.
John: Once we started getting all these requests for Linux, we realized we had goofed in not planning for Linux in our first release. We looked at getting it into that 1.0 release, but it would have messed up the schedule too much. So, we planned a 1.1 release as soon as possible after the first release. That's what we are doing right now. It's been about three months since we made the 1.0 release. The 1.1 release adds a port for Linux and the SGI platform.
Marjorie: How much work did it take to do the port? We've heard from some people that all they've had to do is run make.
John: Yeah, Tcl is very portable, and so was TclPro. The only hassle was actually getting a Linux machine here and getting the build environment set up with C compilers, etc. Once we had that done, it was only a day or two of work to get TclPro running on Linux.
Marjorie: We like to hear that it was quick and easy.
John: One of the neat things about Tcl is that it is an extremely portable programming environment—Tcl, all its applications, and all the TclPro tools are actually built with Tcl. Thus, they are all very portable. In some sense, this is a relatively minor announcement for Scriptics in that it is an upgrade release. It has a couple of new features but nothing earthshaking in the way of features. However, I think it's a very interesting release as yet another confirmation of how much demand there is for commercial products for Linux. I also think it is an interesting confirmation of how important Tcl is to the Linux community—people who use Linux are crying out for it. Tcl is one of the best ways of doing graphical user interfaces and also a variety of other applications on Linux.
Marjorie: I think that's true, too. What advantages do you think Tcl has over other scripting languages?
John: That's a good one. The real power Tcl brings is that it's wonderful for creating integration. Compared to other scripting languages, Tcl's advantage is that it can be used for a huge variety of applications. Most other scripting languages were designed for a particular domain. For example, Perl was initially designed for system administration and reporting tasks; JavaScript was designed for scripting in web browsers. These languages work great in the areas for which they were designed, but sometimes don't work as well in other areas (for example, JavaScript isn't used much at all outside web browsers). Tcl was designed to be used in many different areas, and it has worked well that way. Thus, if you have a variety of things to integrate, Tcl is likely to provide the most flexible platform.
Marjorie: Which tools included in Tcl do you think will be most appreciated by Linux developers?
John: Well, definitely the debugger—all programmers need that tool. Also, the Error Checker and the Wrapper will be useful for Linux programmers. Actually, after thinking about this some more, I think all four of the TclPro tools will be useful for Linux developers. Linux developers are not that different from other developers, so I think they will use all the same tools.
Marjorie: Tcl has always been Open Source; TclPro is commercial. How does Scriptics intend to balance this act in the future?
John: The core code for Tcl and Tk will always be freely available. This is a commitment we have made to the Open Source community. What we will do commercially is develop products such as TclPro that aid in Tcl program development. If we gave all our products away, we wouldn't stay in business long.
We allow people to download TclPro from our web site with a free 30-day evaluation license. Since the Linux version became available in beta form at the beginning of November, it has been the number two platform in terms of popularity. About 55% of the evaluation downloads are for Windows (95 and NT). Linux is second with about 21% of the downloads. Solaris, which we had expected to be the number two platform, is a distant third with only 13% of the downloads.
Marjorie: Do you think the time will come when free software will do away with commercial software altogether?
John: No, but I would be happy to be proven wrong.
Marjorie: Some say that with free software, programmers would make their living by consulting and support.
John: That's an interesting idea, if you think about the personality of someone doing this. They're most likely going to build something they want to use themselves, then give it away to others. They tend not to produce other types of software, leaving many areas open for commercial software development.
I think that's why you see operating system cores, scripting languages, mail delivery tools, web servers and other things which expert programmers enjoy using themselves as open source and you don't see enterprise resource planning applications or even things like word processors and spreadsheets yet.
Marjorie: Well, there are some applications out there—they are just not very far along.
John: People like Eric Raymond think we are just at the beginning of the evolutionary development of open source software, and that all of these other applications will come about in time. Maybe he's right. My personal hunch is that open source development is mostly going to be the platform and tool kind of software.
Marjorie: I think the two examples Eric gives for spreadsheets and word processors are Maxwell and xxl.
John: Well, I'd be happy to be proven wrong on that too, you know.
Marjorie: Well, I've always wondered how it would work. As you say, people somewhere along the line have to make a living.
John: I think the whole open source movement is incredibly intriguing and an amazing and empowering device for the individual. One smart person with a good idea and a bit of spare time can harness the energy of thousands of other people and build software that gets used by hundreds, thousands or millions of people. How many industries in the world can be found where such an incredible impact can be made by a single person? It's a really neat thing that smart people with good ideas can change the world.
Marjorie: Someone told me recently that they heard you speak at one of the conferences and that you didn't feel the open source movement currently addressed the needs of the unsophisticated or new user. Is that true?
John: I think it is often true. Again, it gets back to the mindset of the open source developer—that they are typically building programs for themselves. So when they make programs available to others, they tend to have a level of documentation and installation appropriate for a fairly sophisticated programmer rather than for a novice programmer. Again, this is an area where commercial efforts can fill in the gaps by providing the means to make things even easier to use. A great example of that in the Linux sphere is the arrival of companies like Red Hat, Caldera and SuSE which have provided Linux distributions that are much easier to install than they used to be.
If you look back about two or three years before those companies existed, it was a much bigger proposition to install Linux—not for the faint of heart!
Marjorie: What motivated you to decide to write a new scripting language in the first place?
John: Like many other people doing open source stuff, I was solving a problem of my own. The problem I had was that I was building a whole bunch of different tools that needed to have command languages in them and I wanted them to have a powerful command language. I didn't have the time to build a separate one for each tool. So the idea for Tcl was to build a small interpreter that I could plug into different tools, thus using the same basic language as the command language for many different programs. I did that by building an extensible language; Tcl provides all the basics. It can then be dropped into an application with all of the application's features hooked into Tcl as extensions adding to the basic features of the language. That way, I have a very powerful command language in every program, and all programs share the same core part of the language—the Tcl interpreter. That was the basic idea. From there, I added an extension to do graphical user interfaces called Tk. Then we suddenly discovered you can actually write many interesting Tcl scripts without putting Tcl inside another application, but instead using it stand alone. With Tcl and Tk together, you can write great GUIs and other sorts of integration applications. Once that happened, usage by other programmers just exploded.
Marjorie: One of the first articles we got about Tcl/Tk was about using it to write a GUI.
John: That ability wasn't the first thing on my mind when I was writing Tcl, but it turned out that in solving my problem, I had also built something that was very easy to use for developing general purpose GUIs.
Marjorie: How about some personal type stuff about you? What do you do for fun?
John: I do things with my family for fun. Between being CEO of a startup and trying to be a good father to my kids, there isn't a lot of time for anything else. But I enjoy lots of activities with my family.
Marjorie: Okay, how about where did you go to school, that sort of thing?
John: I was an undergraduate at Yale University in the early 70s and got my Ph.D. in Computer Science from Carnegie Mellon University in 1980. I was a professor at Berkeley from 1980 to 1994, when I went to Sun. I ran a Tcl development team at Sun until spinning out to start Scriptics in January of 1998.
Marjorie: Thanks very much for your time.