Softpanorama
May the source be with you, but remember the KISS principle ;-)

Contents Bulletin Scripting in shell and Perl Network troubleshooting History Humor

Nikolai Bezroukov. Portraits of Open Source Pioneers

For readers with high sensitivity to grammar errors access to this page is not recommended :-)


Chapter 9: Slightly Skeptical View on John K. Ousterhout and Tcl

Version 0.41

John K. Ousterhout (pronounced OH-stir-howt  -- as in the Dutch original Oosterhout) is the creator of the Tcl scripting language and the Tk toolkit. 

He was born in born October 15, 1954.

He received a B.S. degree in Physics from Yale University in 1975 and a Ph.D. in Computer Science from Carnegie Mellon University in 1980.

From 1980 to 1994 he was a Professor in the Department of Electrical Engineering and Computer Sciences at the University of California at Berkeley, where he led research projects in computer-aided design, operating systems, and scripting languages.

Prof. Ousterhout is most know as the creator of the Tcl scripting language and Tk toolkit. With the addition of the Tk user interface library in 1990, Tcl/Tk became a widely popular tool for application development. Its mindshare may have fallen somewhat in later years (and wasn't helped by Richard Stallman's famous "drive-by flaming" in 1994, the posts that clearly demonstrated that free software guru does not understand that difference between programming in the large and programming in the small), but it remains popular among network engineers and TK is at the core of the GUI libraries used by Perl, Python, and other languages. Other his works include distributed operating systems, high-performance file systems, and user interfaces.

From 1994 to 1998 he was a Distinguished Engineer in Sun Microsystems Laboratories, where he led the Tcl project.  Unfortunately Sun preoccupation with Java deemphasized TCL project and  John Ousterhout decided to leave Sun.

In January 1998 he founded Scriptics (later renamed Ajuba) with Sarah Daniels. He became CEO of Scriptics. and Sarah Daniels became VP of Marketing and Sales.  Within a month about half of the Sun Tcl team had joined Scriptics and begun development of TclPro, a set of development tools that would comprise  Scriptics first product. TclPro 1.0 shipped in September of 1998. It was a professional quality development and support framework for Tcl that has received warm reviews.

The second product, whose name changed from "Scriptics Connect" to "Ajuba2," was a  specialized business-to-business (B2B) application server with much higher profit margins. It also proved to be more commercially successful.  Via Ajuba Tcl got in the "back office" of AOL Digital City, Travelocity, and other well-known companies.

Ousterhout's challenge as CEO of a small startup was to deliver returns to venture capital firms. And that means Ajuba should be the top dog: B2B was one of the few segments where there seem to be enough customers willing to pay huge premiums for more or less well-engineered software products. TCL was peripheral to Ajuba although Tcl's strength in gluing contributed some value to the solution. Tcl's adaptability is particularly handy in accessing "legacy" data. But the primary "hook" of  Ajuba has been XML. It became a  hot buzzword at this time and Ajuba was  perfect for commercial exploitation of that interest.

On May 22, 2000 a press release from Scriptics Corporation announced its restructuring into Ajuba Solutions, Inc. Reaction from TCL crowd was generally negative: there was a feeling that the "suits" and "moneybugs" took over, and the consequences for Tcl are negative. This initial reaction proved to be true.

The name change is just one aspect of the company changing its main product from TCL to Ajuba and to solidify the company's position as "a XML marketplace player".  "Scriptics" just sounded like a place where programmers were in charge, and that's less comfortable for the clients who were interested in just B2B. "Ajuba," on the other hand, is supposed to be only a "simple, memorable name" (in Arabic it means "miracle.").   Ousterhout tried to downplayed this transition to XML: 

"For the Tcl community there isn't really any news in the name change. It's simply the culmination of our transition from a pure technology provider to a solutions provider. We will continue to work closely with the Tcl community to create great Tcl technology, while building high-value B2B integration solutions on top of that."

But still that move clearly deem phased the TCL/TK technology.  And as such it was a blow for Tcl community, because with the disappearance of a stable TCL  parent company (mothership in language developers jargon) makes the language less appealing to corporate developers.  Also some people were afraid that Ajuba can corrupt Tcl by taking the language in a direction that serves only Ajuba. Larry Virden, who maintains the TCL FAQ, mentioned that:

As Ajuba moves away from being identified as being driven by technology, other companies who have strong foundational ties to Tcl are concerned that in some way the free nature of Tcl will become less free; that their investment of time and energy will be lost somehow. I get the impression that many will be never be satisfied as long as Tcl is 'held' in the hands of people involved in commercial interests."

There was some concerns about TK future. See for example the following message from [Python-Dev]

 FYI ajuba solutions (formerly scriptics) acquired by interwoven

On Tue, Oct 24, 2000 at 07:07:12PM +0200, Fredrik Lundh wrote:
>I'm waiting for the Tcl/Tk developers to grow up -- they still
>fear that any attempt to make it easier to use Tk from other
>languages would be to "give up the crown jewels" :-(

In the long run this has probably harmed Tk seriously.  If Tk was just a widget set divorced from Tcl, then it might have been chosen as the underlying widget set for GNOME or KDE, and then have benefited from the development work done for those projects, such as the GNOME canvas enhancements, which now can't be absorbed back into Tk without a lot of effort to merge the two sets of code. 

In his message to the TCL Announce newsgroup on May 24, 2000  Jeffrey Hobbs wrote:

The most pressing questions on most peoples minds is answered here:

Why did Scriptics change its name to Ajuba Solutions?

Scriptics was founded on the vision of enabling organizations to integrate complex busiess processes, technology and devices. The company has evolved its integration technology heritage into a platform for addressing complex business-to-business integration requirements. The name and corporate identity change signals a shift in the Company's focus from standalone technology to powerful solutions for the business-to-business marketplace.

How does this affect Scriptics/Ajuba Tcl support?

As for the position regarding Tcl, nothing much is changing, it's a matter of focus and emphasis. You will still be able to purchase Tcl training and support, and we are hoping to get TclPro 1.4 out before the end of Q2.

My position as Tcl Ambassador remains as before. The Tcl Core team (myself and Eric Melski) is still firmly employed at Ajuba and working on future enhancements to Tcl and Tk.

... ... ...

Ajuba dis not last long as an independent company and it was acquired by Interwoven in Nov. 2001. (announcement here) for $31 million in stock. The company has absolutely no interest in Tcl; what they wanted was Ajuba's XML expertise. So TCL-related products, including TclPro, were discontinued. This was, of course, another blow to the Tcl community. Here is the press release

SUNNYVALE, Calif., October 20, 2000 - Interwoven, Inc. (Nasdaq: IWOV), the leading provider of enterprise-class content management software, today announced definitive agreements to acquire two privately-held companies, Metacode Technologies and Ajuba Solutions. Metacode is a leading developer of content tagging and taxonomy technology. Ajuba is a developer of XML solutions. Both acquisitions will help Interwoven extend its technology leadership position in content management.

"Working with eBusiness leaders across all industries, Interwoven has a first-hand view of the requirements for next-generation content management," said Martin Brauns, president and CEO of Interwoven. "Accordingly, Interwoven is making investments in cutting-edge technology and top notch engineering talent, to accelerate our pace of innovation and further extend our market lead."

Under the terms of the agreements, an aggregate value of approximately $150 million in Interwoven common stock and stock options will be exchanged for the capital stock and stock options of Metacode and approximately $31 million in Interwoven common stock and stock options will be exchanged for the capital stock and stock options of Ajuba. These transactions will be accounted for as purchases and are expected to be completed in the fourth quarter of Interwoven's fiscal year 2000. "The financial impact of these acquisitions had already been considered in our business plans and financial projections discussed in our recent Q3 earnings conference call," commented Interwoven CFO Dave Allen. The acquisitions have been approved by the board of directors of each company and are subject to various closing conditions.

Along with the content analytics technology acquired earlier this year from Neonyoyo, the Metacode technology will play a key role in providing the intelligence necessary for next-generation content management. The Metacode technology will enhance how customers use Interwoven solutions to create a compelling and relevant Web experience. By automatically including metadata based on customer-specific or industry-specific taxonomies, content can be readily shared and repurposed across multiple Web properties and B2B exchanges. Metacode products are already in use at enterprises such as Eastman Chemical, Reuters Health and VerticalNet.

The Ajuba acquisition will allow Interwoven to accelerate its FY2001 product plans. The Ajuba team will be assimilated into Interwoven's existing technical staff much as the Neonyoyo team was immediately after its acquisition in June. The Ajuba product line will be discontinued.

"The Ajuba team represents a concentration of XML, Java and eBusiness integration talent that will nicely augment our own development efforts, especially our initiatives in wireless and B2B," said Jack Jia, senior vice president of engineering for Interwoven. "This team plus the Metacode technology and team will allow Interwoven to continue to provide groundbreaking products to its world-class customer base."

About Interwoven

Interwoven, Inc. (Nasdaq: IWOV) is the leading provider of enterprise-class content management software. Its flagship product, TeamSite, controls the development, management and deployment of business-critical Web sites. Interwoven solutions are based on an inclusive content architecture that empowers all content contributors and leverages diverse Web assets including XML, Java, rich HTML, multimedia and database content. For more information on the company and its software solutions, visit the Interwoven Web site at www.interwoven.com ...

welch@ajubasolutions.com wrote:
 
> In article <39F441CB.A33B83EF@earthlink.net>,
>   Roy Terry <royterry@earthlink.net> wrote:
> > I'd be *very* interested to hear
> > the Tcl Guys' comments on this development:
> >
> > http://www.interwoven.com/news/press/2000/1020ampr.html
> >
>
> We have finally updated our www.ajubasolutions.com website
> with what we can say about the acquisition.
>
> http://www.ajubasolutions.com/company/whatsnew.html
>
> This is of course a good news/bad news scenario.  The good news
> is that several interesting bits of our technology will begin to
> appear in open source.  The bad news is that Ajuba/Interwoven won't
> be funding Tcl development as before.  More good news is that the
> Tcl Core Team is now a group of 14 folks from a variety of
> companies who's job is to help *you* help Tcl.
>
> The Tcl web site, http://dev.scriptics.com/, er, uh,
> http://dev.ajubasolutions.com (both work) will continue during
> a transition period while we set up "tcltk.org", as will our
> FTP repository.
>
> One more bit.  Ajuba employees (including, Jeff and myself)
> only found out about this less than two weeks ago, and the
> "definitive agreement" was signed only last Thursday.
> So, I apologize that we couldn't say more sooner, but it's
> best to proceed carefully during deals like this.
>
> Brent Welch
>
welch@ajubasolutions.com

Jeff Hobbs, formerly the Tcl Ambassador at Scriptics/Tcl, moved to ActiveState to head their Tcl technologies group (see his notes Tcl'Europe 2002 State of Tcl). in Feb 2001. Brent B. Welch moved to Panasas Inc. to develop file subsystem .

In April 2002 he founded and became CEO of Electric Cloud, Inc.:

Our first product, Electric Cloud 2.0, is a build accelerator that uses clusters of inexpensive servers to reduce software build times by a factor of 10-20x. Electric Cloud is based on sophisticated patent-pending technology for managing dependencies, resulting in vastly greater scalability than previous parallel build systems. Builds that used to require overnight runs can now be run anytime, in minutes rather than hours. As a result, Electric Cloud reduces costs, shortens time-to-market, and improves product quality and customer satisfaction.

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.

It is interesting to compare TCL development and John K. Ousterhout role in it with the Perl's development and  Larry Wall role in it.

In 2011 he started to promote RAMCloud ()

The idea of replacing hard disk drives with flash memory has been gaining steam in the IT industry. But a research group at Stanford University is going even further: they say the goal should be to replace hard disks with DRAM.

While it's just in the prototype phase, the Stanford group is trying to make it a reality with a project called RAMCloud, which can aggregate memory from thousands of commodity servers to dramatically speed up data access. Hard disks, and perhaps flash, would still be used for backup, a crucial consideration because when DRAM loses power it also loses data. But in daily operations, all the information applications access would come directly from DRAM.

Project leader and computer science professor John Ousterhout doesn't downplay the potential roadblocks RAMCloud faces. For one, its success depends upon the development of extremely low-latency networking, he tells Ars. "We're building RAMCloud on the assumption that networking is going to get dramatically better over the next three to five years," he says. "There is evidence that is starting to happen. We think that's likely, but there's a bet there."

But if successful, the benefits will be enormous. DRAM is expensive, but it's also five to ten times faster than flash memory and 100 to 1,000 times faster than hard disks, he says. Of course, DRAM is also 50 to 100 times more expensive than disk when measured per bit of storage. But with mechanical disk, businesses rarely use anything close to their full storage capacity, and are limited in how quickly data can be accessed. If you measure by the cost of each read or write operation, DRAM is actually cheaper, he argues.

"DRAM does not have to be cheaper than disk," Ousterhout says. "It only has to be cheap enough that people will use it because of the performance benefits."

Some vendors have already recognized the major performance benefits, in fact. The likes of VoltDB and other companies have built in-memory databases that rely on main memory for specialized, transaction-heavy applications. These systems have the advantage of actually being shipped today, although Ousterhout believes the use of DRAM can be greatly extended in the future as technology evolves and prices come down.

A new home for data

Papers on RAMCloud published in December 2009 and October 2011 describe it as scaling across thousands of servers and hundreds of terabytes of data. "All information is kept in DRAM at all times," the 2009 paper explains. "DRAM is the permanent home for data. Disk is used only for backup. Second, a RAMCloud must scale automatically to support thousands of storage servers; applications see a single storage system, independent of the actual number of storage servers." A multi-core storage server in a RAMCloud-powered network should be able to service at least 1 million small requests per second, the paper says.

Two years on, Ousterhout and his team of graduate students now have a prototype cluster of 80 servers with 24GB of DRAM on each for a total of two terabytes. The prototype system has some gaps, but it is capable of recovering from crashes and performs basic read operations in five microseconds. The team started coding a year and a half ago, but is still six to 12 months away from a "1.0" level system that would be ready for business use. Even then, "these would be avant-garde, risk-taking people for starters," Ousterhout says.

Ousterhout sees the first wave of adopters as being teams building cutting-edge Web applications that have hit a wall in their storage systems, and can't rely on traditional databases for real-time access to data. Facebook is a good example of a website that could benefit from RAMCloud, and in fact Ousterhout says he's had discussions with executives at the social network. It may not be apparent to a casual user, but Facebook is limited in the ways it can display content by the amount of data it can access in the time it takes to put together a webpage. "They are very constrained right now because they don't have a fast enough storage system," Ousterhout says.

That's not to say Facebook could replace its storage systems overnight with RAMCloud, even if the technology was ready. But Ousterhout said his group is also getting interest from flash device vendors and storage system companies. In the long term, Ousterhout believes RAMCloud could power cloud networks like Amazon's Elastic Compute Cloud or Windows Azure, and perhaps even make an impact in the enterprise data center.

Disk is not the future

Enterprise Strategy Group founder and senior analyst Steve Duplessie argues that future storage systems will not be mechanical in any way, but whether that happens in five years or 40 is unclear. "It's probably more an issue of economics than it is an issue of technology at this point," he says. "It's just a matter of when we can drive down the costs in order to make it realistic for most people."

The SSD industry has been around a few dozen years, yet "we're just finally starting to take off," Duplessie says. Replacing all disks with SSD would be prohibitively expensive, but coupling traditional disk with flash in a tiered system taking advantage of compression and deduplication is both effective and feasible today, he said. "It's really just begun, but that is the way the world is going to go."

The RAMCloud idea, while innovative, is similar to one posed by a company called RNA Networks, which was recently bought by Dell, Duplessie says. "What RNA was trying to do was say they could pool up all the DRAM in all servers and create one big, virtual DRAM megapool that any server could call to and from," Duplessie says. "It hasn't really been commercialized yet."

While DRAM is expensive, Duplessie notes that there is plenty of underutilizied DRAM sitting in data centers today. "If you add up all the DRAM in all machines in a data center, there might be terabytes but at any given time you're not using all of it," he says. "You've already paid for it, you might as well use it."

Within a couple years, the kinds of servers RAMCloud is designed for will have as much as 256GB of DRAM, Ousterhout said. He promises RAMcloud is not the "typical research project," in which a couple of papers are written, a crude research prototype is built and then thrown away.

"I like to build systems that are production-quality," he says. "We build these to be used by other people. We release them as open source. If the system really works we hope it will become widely used."


Ousterhout's dichotomy

Ousterhout's dichotomy is John Ousterhout 's division of high-level languages into "system programming languages" and "scripting languages". This distinction underlies the design of Tcl . System programming languages (or "applications languages") are strongly typed , allow arbitrarily complex data structures, and programs in them are compiled, and are meant to operate largely independently of other programs. Prototypical system programming languages are C and Modula-2 . By contrast, scripting languages (or "glue languages") are weakly typed or untyped, have little or no provision for complex data structures,  and programs in them ("scripts") are interpreted. Scripts need to interact either with other programs (often as glue) or with a set of  functions provided by the interpreter, as with the file system functions provided in a Unix shell and with Tcl's GUI functions.


There is John's own interpretation of History of Tcl reproduced below:

The birth of Tcl

The Tcl scripting language grew out of my work on design tools for integrated circuits at the University of California at Berkeley in the early 1980's. My students and I had written several interactive tools for IC design, such as Magic and Crystal. Each tool needed to have a command language (in those days people tended to invoke tools by typing commands; graphical user interfaces weren't yet in widespread use). However, our primary interest was in the tools, not their command languages. Thus we didn't invest much effort in the command languages and the languages ended up being weak and quirky. Furthermore, the language for one tool couldn't be carried over to the next, so each tool ended up with a different bad command language. After a while this became rather embarrassing.

In the fall of 1987, while on sabbatical at DEC's Western Research Laboratory, I got the idea of building an embeddable command language. The idea was to spend extra effort to create a good interpreted language, and furthermore to build it as a library package that could be reused in many different applications. The language interpreter would provide a set of relatively generic facilities, such as variables, control structures, and procedures. Each application that used the language would add its own features into the language as extensions, so that the language could be used to control the application. The name Tcl (Tool Command Language) derived from this intended usage.

The notion of embeddability is one of the most unique aspects of Tcl, and it led me to the following three overall goals for the language:

I started work on Tcl when I returned from my sabbatical early in 1988, and I began using the first version of Tcl in a graphical text editor in the spring of 1988. By this time I had stopped working on IC design tools in my research, so the experiments with Tcl were mostly academic: I didn't think that anyone besides myself would be interested in an embeddable command language.

The birth of Tk

One of my other interests at that time was graphical user interfaces. As GUIs became more and more popular in the 1980s I had noticed that the complexity of interactive software was rising rapidly. The most interesting new developments seemed to require large projects with enormous investments. As a professor with modest resources, this worried me: would it become impossible for small teams like my research groups to build innovative interactive systems?

I concluded that the only hope for us was to reduce the resource requirements by building large systems out of reusable components. If most of the complexity of a system was in the components, and if we could carry the components forward from system to system, perhaps we could build large powerful systems with small teams. It would take quite a bit of work to develop the components, but this could be done gradually over time, perhaps by several smaller groups working together.

I also reasoned that component-based design would not work unless there was a powerful and flexible mechanism for integrating the components. These thoughts occurred shortly after I had begun thinking about Tcl, and it occurred to me that an embeddable command language such as Tcl might also be useful as a scripting language for integrating components. I decided to test this theory by creating a set of GUI components as a Tcl extension and using Tcl to assemble the components into graphical user interfaces. This extension became Tk.

I began work on Tk in late 1988, but it was a part-time project, so it took about two years before there was enough functionality for Tk to be useful.

Early distributions

I no longer remember exactly when I began giving Tcl away to other people. By 1989 I was using Tcl in a couple of projects, and I believe that I gave a talk on Tcl during the Berkeley Industrial Liaison Conference, where several hundred people from industry came to Berkeley to hear about research in our department. I believe that this led to invitations to give talks on Tcl at a few interested companies, and that some of the people at those talks asked if they could have copies of Tcl. In any case, I gave away a few copies of Tcl to early adopters in 1989.

In January of 1990 I presented a paper on Tcl at the USENIX Conference. The talk was attended by several hundred people and generated enough interest that many people began asking me for copies of Tcl. Around this time I decided to make the Tcl source code freely available on our FTP site at Berkeley. Once that happened, Tcl usage began to spread by word of mouth over the Internet.

One of the people at the USENIX presentation was Don Libes of the National Institute of Standards and Technology. Don had been wanting for some time to build a program to automate interactive Unix applications, but the project had stalled because it needed a good command language and Don didn't have the time to build one. After hearing my talk, Don rushed home, downloaded Tcl, built a wonderful application called Expect, and wrote a paper on it in time for the submission deadline for the next USENIX Conference. This whole process took just three weeks. Don made Expect freely available after presenting his paper in the summer of 1990, and it became an instant hit among system administrators. Expect was not only the first widely distributed Tcl application, but for many years it was the most popular. Many of the early Tcl users learned about it by using Expect.

The basic features of Tk became usable late in 1990, and I presented a paper on Tk at both the USENIX Conference and the X Conference in January 1991. Within a few weeks of these conferences I made the first Internet release of Tk. The first version of Tk lacked several important widgets (e.g., it had no multi-line text widget), but by the summer of 1992 I had added both a text widget and a powerful canvas widget. At this point usage of Tk began to increase dramatically.

Growing popularity

Usage of Tcl and Tk grew roughly an order of magnitude each year in the early 1990s, from a few users in 1989 to several tens of thousands in 1993. There were two primary reasons for this growth.

The first reason for the growth in Tcl/Tk usage was that it provided the easiest way to create graphical user interfaces under Unix (in those days Tcl only ran on Unix systems). Tk's GUI facilities were both very simple and very powerful; interesting applications could be written entirely in Tcl, without writing any C code at all. C-based alternatives such as the Motif toolkit were much more complicated, yet provided less functionality. It quickly became clear that GUIs could be created with 5-10x less effort in Tcl than Motif. It also turned out that many people in industry were just as concerned as I was about the high cost of developing interactive applications.

The second reason for the popularity of Tcl was its embeddable nature. When I started on Tcl I assumed that no-one besides myself would care about an embeddable command language, but I was wrong. Many people, including Don Libes and others, wanted to build applications that were scriptable and extensible but didn't have the time to build a language of their own. Because it was embeddable, Tcl provided a perfect solution for these people. As a result, Tcl ended up being used in applications ranging from stock trading to scientific visualization to manufacturing automation.

Out of this dichotomy in usage grew a discussion that reoccurs every year or two in the Tcl user community. Many Tcl users assert that Tk is the only reason they use Tcl. Some of them don't even like the Tcl language and wish that Tk could be mated with a different scripting language (in fact, this has happened several times, including TkPerl and Python). A different group argues that Tcl is all they care about; they use it as an embedded scripting language, often without Tk, and like the language's properties for this purpose. In a sense both groups are right.

The Tcl community

As Tcl usage grew in the early 1990s, a community formed around the language, contributing many powerful extensions and providing support for new users. Two of the earliest pioneers were Mark Diekhans and Karl Lehenbauer. They wrote TclX, which was one of the first freely available Tcl extensions. TclX provided file access, time and date manipulation, and many other useful facilities. Over time the features of TclX have proven so important that many of them have been incorporated into the base Tcl releases.

Many other Tcl pioneers wrote high-quality extensions and made them freely available. For example, Michael McLennan wrote [incr Tcl], an extension that provides object-oriented programming features in Tcl. George Howlett wrote BLT, which added several important widgets to Tk. Tom Poindexter wrote Sybtcl and Oratcl, which provided access to popular databases. Brian Smith and Larry Rowe wrote TclDP, which provided socket access and other distributed programming features. There are others as well; apologies to the many worthy contributors whom I have failed to recognize.

Other forms of community developed in this same period. I initially created a mailing list for communication among Tcl users, but within a few years it became so large as to be unwieldy. With help from the Tcl community the comp.lang.tcl newsgroup was created as a replacement for the mailing list; since then it has provided a wonderful forum for exchanging information and discussing new Tcl features.

In 1993 Larry Rowe recognized the need for people in the community to meet in person, so he organized the first Tcl Workshop at Berkeley that summer. About 60 people attended, and the workshop was so successful that it became an annual event. In 1995 the USENIX Association offered to help run the workshop; since then it has evolved into a full-fledged conference with several hundred attendees and a rich program of papers, tutorials, and other events. The Tcl Conference is also one of the world's premier events for upper body wear: each year there are 5-10 different T-shirt designs given away to recognize various extensions, events, etc.

During this period I made new releases of Tcl and Tk roughly every 6-12 months. Most of the new features were suggested by people in the Tcl community; in some cases users even supplied me with prototype code for the new features, which I then integrated into the core software. Typically each new release cycle would start off with a discussion period where I proposed a candidate list of new features and everyone in the community could vote for the ones they thought were most important. I tried to give priority to the features with the most votes.

Ouster-votes

Over time the Tcl release cycle tended to align with the Tcl Conference. A new release would typically come out around the time of the conference, and I would use one session of the conference to discuss new features for the next release and get feedback. I would often call for an impromptu show of hands to see how the audience felt about various issues, and then attempt to make a rough count of how many hands were raised ("ten, twenty, thirty, ... looks like about 35 hands to me"). These became known as "Ouster-votes" and their accuracy has often been a topic of discussion. Some wags have insinuated that my vote counting is less than totally objective....

The Sun years

In 1994 I decided to leave Berkeley for industry. I'd always wanted to spend part of my career in industry, and after 14 years in academia the time seemed right. After considering a variety of possibilities, I decided to accept an offer from Sun Microsystems. Eric Schmidt, Sun's Chief Technology Officer, and Bert Sutherland, Director of Sun Microsystems Laboratories, offered me the chance to build a team at Sun Labs and evolve Tcl into a universal scripting language for the Internet. I had always felt that Tcl would eventually need to have profitable businesses built around it in order to survive over the long term, and the Sun offer was a great opportunity to take Tcl to the next level.

I joined Sun in May of 1994 and began building a team of Tcl developers. Over the next three years the Sun Tcl team grew to a dozen members. Up until this point nearly every line of code in Tcl and Tk had been written by me personally, but over time more and more of the responsibility for Tcl code shifted to other members of the Sun Tcl team.

The additional resources provided by Sun allowed us to make major improvements to Tcl and Tk. Scott Stanton and Ray Johnson ported Tcl and Tk to Windows and the Macintosh, so that Tcl became an outstanding cross-platform development environment; today, more than two-thirds of Tcl downloads are for Windows. Jacob Levy and Scott Stanton overhauled the I/O system and added socket support, so that Tcl could easily be used for a variety of network applications. Brian Lewis built a bytecode compiler for Tcl scripts, which provided speedups of as much as a factor of 10x. Jacob Levy implemented Safe-Tcl, a powerful security model that allows untrusted scripts to be evaluated safely. Jacob Levy and Laurent Demailly built a Tcl plugin, so that Tcl scripts can be evaluated in a Web browser, and we created Jacl and TclBlend, which allow Tcl and Java to work closely together. We added many other smaller improvements, such as dynamic loading, namespaces, time and date support, binary I/O, additional file manipulation commands, and an improved font mechanism.

When I moved to Sun many people were worried that Tcl would become a proprietary language, and there were several "spirited discussions" on the comp.lang.tcl newsgroup. Fortunately, as part of my offer Sun had agreed that the core Tcl and Tk libraries would continue to be distributed freely in source form, and Sun honored this agreement faithfully. As new releases appeared with more and more improvements, it became clear that Sun's support for Tcl was a wonderful thing that allowed the language to evolve much more rapidly than it could have otherwise. The concerns were gradually replaced with enthusiasm for all the new features.

During these years Tcl usage continued to explode. By the end of 1997 there were hundreds of thousands of Tcl developers; the rate of Tcl downloads from the Sun FTP site increased from 2000 per week at the end of 1995 to more than 10000 per week by early 1998. It was clear to me that there were huge business opportunities around Tcl. It was also clear that the Tcl community had many needs that weren't being met by the open-source Tcl development. For example, there were almost no development tools for Tcl, and professional services such as training and support were only sporadically available. Many important extensions, such as ActiveX and CORBA support, still needed to be written.

Ajuba

In late 1997 I decided that the best thing for Tcl was to spin out of Sun and form a startup that could focus entirely on Tcl. In January 1998 I founded Scriptics (now Tcl) with Sarah Daniels, who became VP of Marketing and Sales. Within a month about half of the Sun Tcl team had joined us and begun development of TclPro, a set of developrowth spurt at Ajuba. by the ethe Tcl core facilities, and it will continue to release them freely just like Sun did. In 1998 Tcl made several patch releases for Tcl 8.0 to fix bugs and add small new features, such as a better support for the [incr Tcl] extension. In April 1999, Tcl made its first major open source release, Tcl/Tk 8.1. This release added Unicode support (for internationalization), thread safety (for multi-threaded server applications), and an all-new regular expression package by Henry Spencer that includes many new features as well as Unicode support. With the 8.1 release, Tcl became the first scripting language to have all the facilities needed for mission-critical enterprise applications.

In the future, Tcl will continue to develop both open source and commercial products. With this arrangement we hope to achieve the best of all worlds, with the open source core continuing to improve rapidly and Tcl products filling the gaps and providing the revenue to support both the free and product developments. The Tcl user community will continue to play an important role in the evolution of Tcl, as it always has.

ActiveState

This section added by Jeff Hobbs

Ajuba became in part the victim of its own success in creating enterprise class XML server software based on Tcl, and was acquired by Interwoven in October, 2000. Interwoven was not interested in open source software howevr, just the XML and server stuff. Jeff Hobbs, formerly the Tcl Ambassador at Scriptics/Tcl, moved to ActiveState (already known for their Perl products and development) to head their Tcl technologies group.

ActiveState now provides the full range of products and services related to Tcl development, in addition to being a very active participant in continuing the further development of the open source core.

Tcl: award-winning software

In the spring of 1998 I learned the wonderful news that Tcl had won two major awards. The first is the ACM Software System Award, awarded each year for "a software system that has had a lasting influence". Past winners of the award include such seminal systems as the TCP/IP protocols, the first spreadsheets, the first relational databases, the World-Wide Web, Unix, PostScript, and Smalltalk. The second award was the USENIX Software Tools User Group (STUG) Award, given each year in recognition of an outstanding software tool.

Vision for the future

Integration applications will continue to grow in importance as more and more businesses discover that their competitiveness depends on being able to make all of their computerized systems work together effectively. Tcl provides a uniquely great platform for building these integration applications. In the future, when CIOs are planning the future of their information infrastructure, I believe that the integration platform will have the same level of importance that the operating system platform and database platform have today. I hope that Tcl will be the premier integration platform, and Tcl the premier vendor of these platforms.

Related information

 


Articles, Talks and Interviews

  1. Scripting: Higher Level Programming for the 21st Century by John K. Ousterhout. A very important article by designer of TCL. It 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.
  2. Ousterhout on Tcl (interview by Jakob Nielsen). This interview took place on June 27, 1996 at Dr. John Ousterhout's office at Sun Microsystems Laboratories, Mt. View, California.
  3. TclTk's John Ousterhout   -- interview by Dale Dougherty
  4. Sun reverses course on Tcl products - SunWorld - August 1997

Some papers from John  Ousterhout homepage

  1. Sun Tcl/Tk Update. This presentation was made at the 1997 Tcl/Tk Workshop (July 16, 1997). It summarizes the recent Tcl/Tk developments at Sun and our plans for the next year or so. The slides for the talk are available in three forms:
  2. A draft of the paper The Safe-Tcl Security Model. This paper gives an introduction to the security issues addressed by Safe-Tcl, describes how Safe-Tcl works (or will eventually work, when it is finished), and compares Safe-Tcl to other approaches to security in the Internet world.
  3. Position paper on Tcl and Tk for the Joint W3C/OMG Workshop on Distributed Objects and Mobile Code June24-25, 1996, Cambridge, Massachusetts.
  4. Why Threads Are A Bad Idea (for most purposes). Talk presented as 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 three forms:
  5. Tcl: A Universal Scripting Language. This talk was presented as a Distinguished Lecture at MIT on October 26, 1995. The first half of the talk is an overview of Tcl and Tk. The second half of the talk describes how the design of the Tcl language followed naturally from the goal of being extensible, and it discusses the weaknesses of the Tcl language. The talk closes with a critique of programming language research and some suggestions for how it could be made more relevant in today's world. The slides for the talk are available in three forms:
  6. Scripts and Agents: The New Software High Ground. This talk was originally given as an Invited Talk at the Winter 1995 USENIX Conference, and has been updated and revised slightly for other similar talks given since then. The talk asks the question "what would it mean to program the Internet?" Then it discusses universal scripting languages, agents, the possibility of using Tcl and Tk for agents, alternatives such as Telescript, Visual Basic, and Java, and how Tcl/Tk and Java together can form the "Visual Basic of the Internet". The slides for the talk are available in four forms:
  7. An Update On The Sun Tcl/Tk Project, given at the 1996 Tcl/Tk Workshop (July 11, 1996). This talk summarizes the recent Tcl/Tk developments at Sun and our plans for the next year or so. The slides for the talk are available in three forms:
  8. A critique of the paper "File System Logging Versus Clustering: A Performance Comparison", by Margo Seltzer et al., appearing in the Winter 1995 USENIX Conference.
  9. A critique of the paper "An Implementation of a Log-Structured File System For UNIX", by Margo Seltzer et al., appearing in the Winter 1993 USENIX Conference.
  10. Can DRAM replace hard drives and SSDs RAMCloud creators say yes

Sun/Tcl Testimonials Tcl/Tk is widely used for a variety of programming tasks. Take a look at what Tcl/Tk users are saying.

Archive Note: For an updated list of vendors that use Tcl in their products, please visit the Sunscript vendors page.

Brian Kernighan Co-author of The C Programming Language AT&T Bell Laboratories

"Tcl/Tk is wonderfully productive; in a few hours one can accomplish what might well take days or even weeks with C-based tools. The package is extremely robust, very well documented, and has an active and cooperative group of users. The source code is freely available and of exceptionally high quality. It is clearly possible to build production-quality user interfaces with Tcl/Tk, and to do so far faster than with competing tools."
1995 Tcl/Tk Proceedings

Bob Purvy Group Manager, System Management Products Oracle Corporation

The Oracle Enterprise Manager is a comprehensive suite of systems management tools that enable customers to monitor and manage their networks of Oracle databases and other software. The Enterprise Manager provides mission critical support by ensuring, for example, that database servers are kept running.

Tcl is the "intelligence" in the Enterprise Manager framework. We use Tcl, together with the OraTcl extension done by Tom Poindexter of US West, and a number of other extensions that we wrote, to provide monitoring and management. In general we find Tcl to be very effective for what we need, which is a portable scripting language with wide acceptance in the developer community, and which is extremely easy to work with and extend.

Dave Griffin Digital Equipment Corporation

Digital's AltaVista Forum is a Web-based collaboration environment. Tcl is used as the primary scripting language for developing collaborative applications and also is used in the development of the underlying toolkit (along with a database, a powerful search engine, a simple object-based inheritance mechanism, and a ton of other goodies).

We selected Tcl as our scripting language because it is open, robust, highly extensible, and has a very nice book describing it.

 

Dr. Michael J. McLennan Member of Technical Staff  Bell Labs Innovations for Lucent Technologies

I have been using Tcl/Tk for more than four years, and I love it. Tcl/Tk has revolutionized the way we build software. I work in a laboratory that builds Computer-Aided Design (CAD) tools for integrated circuits. We have embedded Tcl/Tk into many of our tools, including a circuit simulator, an interconnect capacitance simulator, and a parameter extractor. One of these tools appears on the front cover of John Ousterhout's Tcl/Tk book.

I have heard people say that Tcl/Tk cannot be used to build large applications, but that's not true. We use the [incr Tcl] extension to support object-oriented programming, and our applications easily grow to something like 40,000 lines of Tcl code. Now that our tools "speak" Tcl, we can add new functions in a matter of hours and write new interfaces in just a few weeks. Our customers also can write scripts to customize their tools. We would not be able to do any of this with the commercial user-interface builder tools.

Dr. Michael B. Johnson Media Arts Technologist Pixar Animation Studios

At Pixar, Tcl/Tk is used all over the company in a wide variety of projects. Here in the Interactive Group, we've standardized on Tcl/Tk as one of the core technologies for our cross-platform development tools, and have been pleased with the quality of the Mac and PC ports.

Tcl/Tk is a powerful set of tools and is accompanied by the friendliest, most intelligently pragmatic development community I've ever been involved with. I think it's wonderful that Sun continues to support the Tcl/Tk project.

Nathaniel Borenstein Chief Scientist First Virtual Holdings Inc.

First Virtual Holdings Inc, the leader in Internet commerce, is strongly committed to the future of Tcl. We find that Tcl's extensibility and versatility allows us to create products and react to new requirements quickly. We constructed our first products using Tcl, and we intend to use Tcl for our subsequent products.

Our first payment processing system has performed flawlessly while processing hundreds of thousands of real-world financial transactions. Our second transaction processing system is also written in Tcl. Tcl provides a platform that allows us to fully test a system before bringing it on-line. This ability greatly simplified the introduction of our second generation transaction processing system.

By combining many of the best features of a number of other programming languages, Tcl enables rapid code development without sacrificing power or structure. The ease with which you can add C code to define new Tcl primitives, in my opinion, virtually eliminates the major efficiency objections that have traditionally applied to interpreted languages. Tcl was a vital tool that helped us to be first to market, and continues to help us to remain nimble and competitive.

Bret A. Schuhmacher Technical Director WebNet Technologies

WebNet Technologies uses Tcl to write CGI back-end programs. Tcl allows us to write very complicated programs that interface with other servers, databases, and fax and email systems in an extremely short period of time. Tcl's short learning curve, broad range of extensions, open architecture, and abundant resources (comp.lang.tcl) make it an ideal choice for us. If you can dream it, you can build it with Tcl/Tk!

http://www.wn.com

Gil Stevens Sr. Director Intelligent Network Software Development DSC Communications Corporation

Tcl and Tk, along with their various extension sets, have increased software productivity and proven to be reliable components in a 7x24 telecom environment.

Jim Falbo VP Engineering CADIX International Inc.

We use Tcl/Tk as the primary programming language for our Tiger project -- a CAD framework and several Electronic Design Automation (EDA) applications. We've leveraged our DA expertise to create CAD/EDA-specific Tcl Extensions and at the same time provided a high quality, consistent application GUI using Tk. Having written more than 100,000 lines of code with limited resources and little or no problems, we're very pleased with Tcl/Tk. As an engineering manager, I find the biggest boon of Tcl/Tk is that I can assign many programmers to one application with minimal development conflict.

http://www.cadix.com/

J.M. Ivler Owner Infobahn Xpress

After working with Tcl/Tk for several years in rapid prototyping of X-based applications, I found that Tcl, used for development of Web CGI programs, offers a safe, fast, rapid development environment and easy integration into the World Wide Web. email.tcl, a program that has been released freely on the Internet and that graced the initial issue of Web Developer, shows just how easy it is to incorporate Tcl into your CGI workspace.

http://www.net-quest.com/~ivler/

Dr. Laurent Demailly Project Manager Observatoire de Paris

In early 1993, we used Tcl/Tk for our distributed control system. Tcl/Tk proved to be a great choice for fast and flexible development. It still is today! Tcl's extensibility is critical for the success of our open systems.

http://www.lyot.obspm.fr/tcl.html

Steve Landers Vice President of Architecture and Strategic Development Open Systems Management Group

Tcl/Tk has provided a mature, flexible technology that allows the COSMOS suite of system-management products to rapid adapt to changing market trends, across a range of platforms from UNIX to Microsoft Windows NT. Tcl/Tk reduced the effort in implementing our client-server GUI by an order of magnitude -- resulting in a better product reaching the market sooner.

http://www.osmcorp.com

Terry Pudwell Managing Director March Systems Ltd.

March Systems Ltd. produces Security Manager, a client-server UNIX and Windows/NT security tool based on Tcl and Tk. It uses Tcl as a scripting language for security rules -- functional checks -- to be applied to a system, making it both flexible and extensible.

The rapid development cycles associated with Tcl/Tk allow us to respond quickly to newly discovered security concerns, often in a matter of days. Much of Security Manager itself is written in Tcl, including the network controller (client) and parts of the remote agents (servers). An agent on each managed system applies the security checks under the control of the controller, which is a Tk-based GUI for managing the security of whole networks of UNIX and Windows/NT machines.

Steve Herrod and Scott Devine The SimOS group at Stanford University Department of Computer Science

SimOS is the world's fastest and most powerful computer system simulator, quickly executing commercial operating systems and applications. As such, it is an excellent platform for operating system development, architectural evaluation, and application performance debugging. SimOS's greatest strength is that it can track, classify, and visualize every machine-level event that occurs during the execution of a workload, including cache misses, disk accesses, exceptions, and instruction execution. The problem is that, without classification and processing, there is simply too much data at too low of a level to be useful. We found Tcl to be the ideal solution to this problem.

Using Tcl, we encourage users to customize their event classification, mapping the low-level machine events back to application-level information. Using Tk, the resulting information is presented graphically throughout the execution of the simulation, providing immediate feedback to the user. Tcl was simple to incorporate into our existing code base, provides a flexible interface for simulator control, and is fast enough for the real-time processing of our voluminous data.

http://www-flash.stanford.edu:80/~herrod/SimOS/

Doug Hughes Senior Network Engineer Auburn University College of Engineering

Tcl/Tk is the most useful tool in existence for rapid prototyping of GUI, network, and system-administration tools. The quick development time, ease of use, and availability of various excellent extensions make it exceptionally easy to develop new, labor-saving applications and leverage off the libraries of already existing tools produced by a large, dynamic users group.

Nathan R. Price Neosoft, Inc.

I'm new to the Tcl/Tk community, but I wanted to comment about the language. I think it is wonderful. Tcl/Tk lets you create nice looking, functional programs very easily. With Tcl, in a matter of minutes I created a toolbar that is functional and easy to use -- a toolbar that would have taken several hours to create using C.

After years of toying with C and not producing much that is visually appealing, it's great to have Tcl/Tk.

http://www.neosoft.com

Karl Lehenbauer Chief Technical Officer NeoSoft, Inc.

Tcl is easy to learn, powerful, extensible, and... fun.

With its simple syntax and advanced graphical toolkit, HTML writers can rapidly step up to writing new and exciting webpages with active content, even without prior programming experience.

We use Tcl extensively throughout our organization, and it has given us the edge that has made www.neosoft.com one of the world's most popular websites, and helped us to grow our business to over 25 times its size in only three years.



Etc

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available in our efforts to advance understanding of environmental, political, human rights, economic, democracy, scientific, and social justice issues, etc. We believe this constitutes a 'fair use' of any such copyrighted material as provided for in section 107 of the US Copyright Law. In accordance with Title 17 U.S.C. Section 107, the material on this site is distributed without profit exclusivly for research and educational purposes.   If you wish to use copyrighted material from this site for purposes of your own that go beyond 'fair use', you must obtain permission from the copyright owner.

Society

Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy

Quotes

War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes

Bulletin:

Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law

History:

Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Haterís Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least


Copyright © 1996-2014 by Dr. Nikolai Bezroukov. www.softpanorama.org was created as a service to the UN Sustainable Development Networking Programme (SDNP) in the author free time. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Site uses AdSense so you need to be aware of Google privacy policy. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to make a contribution, supporting hosting of this site with different providers to distribute and speed up access. Currently there are two functional mirrors: softpanorama.info (the fastest) and softpanorama.net.

Disclaimer:

The statements, views and opinions presented on this web page are those of the author and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

Created May 1, 1996; Last modified: November 01, 2014