TCL's historia often asks what I design the TCL language is what is the purpose of it, why it will become so popular. This article will revisit the idea of designing TCL and TK, reviewing TCL and TK in the past decade, and I experience from Berkeley to Sun to Scriptics. You will see that the initial TCL is very simple; the success of this system is very surprised, in fact, I also start to understand the reason for TCL popularity by reviewing its history. Birth of Tcl
In the early 1980s, the TCL script was born in the early 1980s. At that time, I and my students have written many interactions for IC design, such as Magic and Crystal. Each tool requires a command language (in that era, people need to type in the command to use these tools; the graphical user interface has not been widely used). However, our research focuses on tools instead of their command language, so we have not put too much energy on the command language, and the results are weak. Worse, the language of each tool is not involved in each other. In this way, after a period of time, it becomes quite tricky. In the autumn of 1987, in the holidays of the West Institute of Dec, I have an idea of designing an embedded command language. This idea is to spend some energy to create an excellent explanatory language, then further put it into a library package that can be repeated in many different applications, and the language interpreter provides a series of relative GM tools such as variables, control structures, procedures. Each program that uses this language can add your own function to the language in an extended form, to control the purpose of the program with language. TCL's full name "Tools Command Language" is explained. Embedded is one of the characteristics of TCL. In order to achieve this idea, I am going to start in the following three aspects: ★ This language must be expandable: it should be able to make each app can be very convenient Add it to the basic functions of the language, and the specific functionality of the program must be very natural, it seems that the same start is designed for this language. ★ This language must be very simple and universal, it is easy to work with many different applications without limiting the functionality of the application. ★ Since most of the excellent functions come from applications, the primary purpose of this language is to integrate expansion components or "glued", so it must have good integration performance. At the beginning of 1988, the holiday was over, I started to design TCL's work. In the spring of 1988, I started using the first version of TCL in a graphical text editor. The TCL experiments are still mostly in theoretical stage before I stop IC design tools. At that time, I would like to have some interest in this embedded language in addition to myself. Nativity of TK
At that time, I was also very interested in graphical user interfaces. When the graphical user interface is gradually popular in the 80s, I noticed that the complexity of interactive software is growing rapidly. The most striking trend seems to be an increasing demand for huge investment. As a professor, the experimental conditions are not very adequate, which makes me start to worry that the research institute like we like a small team is impossible to make an interactive system. What I conclude is that our only hope is to reduce the demand for resources other than the resource other than the reusable components when the large system is created. If a system is the most complicated place to use parts, and the components can be A system is ported to another system. Perhaps we can create powerful systems with the size of a small team, which requires some energy to develop these components. However, if there are several groups work together, complete it is just a problem. I am also considering such a problem, I want to make the formation-based design to be implemented, there is a powerful resilient control integration tool. These ideas have been generated when I start thinking about doing TCL, I think the embedded command language like TCL is useful as a scripting language to integrate components. I decided to create some GUI components extended as TCL and use TCL to integrate these components into the graphical user interface, and take this theory. This extension becomes TK. I started TK at the end of 1988. This is just a part-time project, so it has been used for two years to make TK have some practical functions. Early integrated kit I can't remember when to let people use TCL, I remember that I made a speech on TCL in the Berkeley "School", hundreds of participants from the industry listened us. This research results are based. I am also invited to give a speech by some companies interested. During these speeches, some people want to copy the copy of TCL, so in 1989, this part of the person came into contact with Tcl. In January 1990, I read a papers on TCL at the Usenix meeting. There were hundreds of listeners. They are more and more interested in TCL, and many people have begun to TCL. At that time, I decided to distribute the source code of TCL on the Berkel's FTP site. Since then, the users of TCL began to increase by the user through the Internet. There is a person called Don Libes in the listener of the Speech in the Usenix meeting. He is from National Standards and Technology Research Institutes. DON always wants to write a program, this program can automatically operate the UNIX application, but this requires an excellent command language, and Don does not have time to write such a language. So this project can only be put aside. After listening to my speech, Don immediately ran home, downloaded Tcl, wrote a very good program called Expect, and completed a papers on it before the next USENIX meeting submitted the final deadline. The whole process only used three weeks. DON issued his paper in 1990, DON has been used by Expect free of charge, so it has caused a small vibration in the system administrator community. EXPECT is not only the first widespread TCL application, but also for many years. Many early TCL users understand TCL by using Expect. At the end of 1990, the basic functions of TK became very practical. In January 1991, I also published a papers on TK at the Usenix Conference and X App Developer Conference, and several weeks during the two meetings. In the Internet, I released the first TK version on the Internet. The first edition of TK lacks many important components (for example, there is no multi-line text box component), but in 1992, I added a text box component and a powerful canvas component. At this time, TK users began to grow rapidly. Start becoming popular
The TCL / TK users have increased rapidly every year from early 1990. From 1989, several users from 1993, there are two main reasons why this rapidly grow: the first reason for TCL / TK users is: it provides the most Simply developed a method of developing a graphical user interface under UNIX (at that time the TCL can only run under the UNIX system). The TK's GUI tool is simple and powerful; the famous application written can be written completely by TCL without writing a C code, replacing C-based tools to develop, such as MotiF tools, more complicated, and function It is also relatively small. People quickly found that GUI to develop GUI compared to MotiF to invest less than 5 to 10 times, which proves that many people in the industry have worked as high spending issues that develop interactive applications like me. The second reason for TCL popularity is its embedded characteristics. When I started to do TCL, I guess that I would like to be embedded in a command language, but I am wrong. Many people including Don Libes want to write script-extensible applications, but there is no time to create such a language. Because of an embedded feature, TCL provides them with a perfect solution. Results TCLs have been widely used in many fields such as stock trading, scientific observation, production automation. Every two years of TCL users will have discussion for TCL and TK, many TCL users think TK is the only reason they use TCL, some of them don't even like TCL language, and hope TK can be Other scripting languages combine. (In fact, some people have done such, such as TKPERL and PYTHON, and another person thinks that TCL is in their needs, they use it as an embedded scripting language, and often do not use TK. Since TCL can meet their special purpose, they like TCL very much, in a sense, these two are all right. TCL community
In the early 1990s, with the increase of TCL users, people have established a community about this language on the Internet, with the aim of issuing powerful extensions and helps new users. Mark Diekhans and Karl Lehenbauer are two in early starters. They wrote TCLX, one of the earliest TCL extensions, TCLX provided access, time, and date control on files, and many other useful tools. Over time, TCLX's function proves that it is very important, so many of these functions have been integrated into the basic functions of TCL. Many early TCL pioneers have written a large number of high quality extensions and allow these extensions to be used free, such as [INCR TCL] written by Michael Mclennan, providing TCLs with object-oriented features. The BLT written by George Howlett has added many important components to TK. The Sybtcl and ORATCL written in Tom PoIndexter provides access to the mainstream database. The TCLDP written by Brian Smith and Lary Row off provides a Socket interface and some useful programming features. There are still many contributors, I have already remembered it, I can only apologize here. Other forums in the community are also developing during this period. I started a message for users in the community, but in just a few years, this list becomes quite lengthy, so that it will not be controlled. With the help of the community, we have established a Comp.lang.TCL newsgroup instead of the original mailing list, and it has become an excellent location for exchange information and discussing the new TCL new features. In 1993, Larry Rowe realized that people in the community need face-to-face communication. So he organized the first TCL symposium in Berkeley, with approximately 60 participants. Since this conference is very successful, we decided to set it a year. In 1995, the Usenix Association began funding this discussion. Since then, it will change to a full-scale conference that has a large number of papers, tutorials, and launched a large number of papers, tutorials. The TCL Conference is also one of the world's largest participants on the unified conference, each year, to distribute 5-10 short-sleeved shirts from different design patterns to distinguish between different extensions and activities. During this time, I released a new version of TCL / TK every 6 to 10 months. Most new features are recommended by the TCL community. Sometimes, users even give me the source code of the new feature, then, I will add it to the core code of the software. Typically, each new version has a discussion process before publishing, I provide a new feature list, and then vote in the community to select the functionality they think the most important. I am trying to take into account the most valid. OUSTER's Votes Later, the release cycle of TCL slowly tend to be consistent with the TCL conference. The new version is usually published during the General Assembly so that we can take a period of time to organize the next version to join the new feature and get feedback. I often let the participants will raise their hand, and count the idea of listeners to some questions, and then make a probably statistical statistics on the number of people who raise their hands ("10, 20, 30, ..., it seems about 35 votes") These votes are called "OUSTER's Votes", and the number of votes is often discussed by everyone as a topic. But some people joking said that my number of tickets is not objective ... in Sun's Day
In 1994 I decided to leave the Berkeley from the industry. In the past, I wanted to work part-time job in the industry, 14 years in the academic world, now I have mature it. After considering many factors, I decided to accept Sun's invitation. Eric Schmidt, Sun's Chief Technology Officer and Leader of Bert Sutherland, Sun Laboratory provided me a chance to create a group in the Sun laboratory to develop TCL into a scripting language commonly used on the Internet. I have always thought that TCL ultimately needs commercial profits to survive in long-term development, Sun provides a good opportunity for TCL to higher performance. I joined Sun Company in May 1994, and then formed a TCL development team. In the next three years, Sun's TCL team members have developed to 12 people. I used to basically Tcl / Tk's code every line of code. I personally come. Written, but since then, the work written by the TCL code is completed by the TCL team. Many of Sun provides many of our performance for TCL / TK performance. Scott Stanton and Ray Johnson output TCL / TK on Windows and Macintosh, so TCL became a cross-platform development environment; currently, more than 2/3 downloads of TCLs were used for Windows development. Jacob Levy and Scott Stanton carefully tested the input and output system and added support to Socket, so TCL can be widely used for web applications. Brian Lewis creates a binary compiler for TCL scripts, which increases its running speed by 10 times. Jacob Levy has developed SAFE-TCL, a powerful security module that enables non-trusted scripts to be safer. Jacob Levy and Laurent Demaily created a TCL plugin so that the TCL script can be run in a web browser, we created JACL and TCLBLEND to make TCL and Java can work closely. We also have some small improvements, such as dynamic loading, namespace, time, date support, binary I / O, additional file operation command, and an improved font mechanism. When I joined Sun, many people worried that TCL would become a speech, and there were many warm discussions on comp.lang.tcl. Fortunately, Sun agreed to continue to issue a TCL / TK core code base in the Source Forum, and Sun has always hoped. As performance continues to increase, the initial enthusiasm of the initial development of new features is initially. In those years, TCL users continue to grow. By 1997, there was already a tens of TCL developers; Sun's FTP site TCL download rate rose by 2,000 people at the end of 1995 to more than 10,000 people per week in early 1998. Obviously, TCL is a huge business opportunity to me. The development of open source code meets many requirements in the TCL community. For example, there is almost no tool for TCL, such as training and technical support is only zero. Many important extensions, such as ActiveX and Corba support have not yet been written. Ajuba
At the end of 1997, in order to better develop TCL, I decided to leave Sun to create a company that fully focused on TCL. In January 1998, I created Scriptics (Today's TCL) with Sarah Daniels, which was responsible for marketing by Sarah. In a month, about half of the Sun TCL team jumped into our company, we began to develop TCLPRO, a set of development tools that included our original product. TclPro 1.0 was completed in September 1998. It has provided strong support for the success of Ajuba in the market. At the end of 1999, we were prepared to hire 50 employees. TCL has replaced Sun's role on the development of TCL core tools, and it will continue to post it like SUN. In 1998, TCL did some improvements for TCL8.0, fixing some errors and added some small features, such as better support [INCR TCL] extension. In April 1999, TCL released the first version of the most important open source, TCL / TK8.1, this version added support (international), linear security mechanism (for multi-threaded service programs) And a new rule express package developed by Henry Spencer, there are also some similar to Unicode to support such excellent new features. TCL be the first scripting language that meets the requirements of key processes in the enterprise. In the future, TCL will continue to develop two products of open source and business profit. Under this concept, we will continue to improve the performance of the core components of open source, improve the lack of products, for free and goods Two development tools provide financial support, we must do it best. The TCL community will continue to play an important role in the development of TCL. The author of this part of ActiveState is Jeff Hobbs
Ajuba created a TCL-based Enterprise Edition XML class service application, which was later acquired by Interwoven in October 2000. But Interwove is not interested in open source software, they only pay attention to the related products of XML and servers. Jeff Hobbs, former TCL Scriptics / TCL agents, hopping to Active State (known as product and development tools that publish Perl) to lead their TCL technology. ActiveState now provides a series of products and services for TCL development, in addition, it is also a very active participant that continuously develops open source core kernels. TCL: Award-winning software
In the spring of 1998, I heard a few exciting news, TCL received two important awards. One is the ACM Software System Award, award to the annual "long-term impact-on software system". The winners of this award include many important systems such as TCP / IP protocols, first linear tables, first relational database, Internet, UNIX system, Postscript, Smalltalk. The other is the Usenix Software Tools User Organization (Stug) Grand Prize, this award award gives an excellent software tool. Future version
Integration procedures will continue to develop, because more and more companies have found that their competitiveness depends on whether they can make their computer systems effectively cooperate. TCL provides a very powerful platform for establishing these integration programs. In the future, when the chief technology officers are designed in the future information system structure, I believe that the emphasis on the integration platform will be like the current attention to the operating system platform and database platform, they will be put on the top priority. position. I hope that TCL has a day to become the most important integration platform. History of TCL
Original Author: John K. Ousterhout