Version 0 of Brief Tcl Corporate History

Updated 2006-09-13 23:42:14

"... (1) RMS didn't like Tcl because it wasn't a full Lisp - Graham's Law and all that.

 (2) RMS was profoundly disturbed by Sun's hiring of JKO and announcement of TclPro.
 RMS thought of TclPro as being a closed-source fork, where in fact it was a suite of closed-source tools to facilitate Tcl development.
 ... and he saw Sun's adpotion of Tcl as 'taking it proprietary.'
 ... including calling JKO a "parasite" to his face in public at one of the O'Reilly workshops.
 RMS' concern regarding closed-source fork was at least sane.
 That it didn't happen that way is down to Sun's ... good graces, I guess.

RMS then mounted a lot of technical criticisms about the language, most of which were more or less well founded. The Tcl community took those in its usual spirit - as a challenge - and fixed virtually all of them in the branch that became 8.0. I say "the community" rather than "John's team at Sun" because much of the work came from outside; Karl Lehenbauer, Mark Diekhans, George Howlett, Henry Spencer and Don Libes all come immediately to mind as significant contributors.

 and in fact, the 8.0 and 8.1 releases showed pretty emphatically that Sun and Scriptics were not "taking it closed-source".
 one account of the incident is at http://www.oreilly.com/openbook/freedom/ch11.html

RMS' concern was valid insofar as the license didn't prevent its being closed. However, it ignores something else operating to prevent the enclosure. For example, had Sun decided tcl would be its Java, things may have gone as RMS feared, one can't rule it out, but RMS thought a license could. The interesting thing was that the trigger for the outburst was John's statement that businesses need well-packaged, supported, documented distributions that (in his opinion at the time) only a proprietary model could achieve. http://www.techweb.com/wire/story/TWB19980824S0012

There's no question that Sun's investment improved tcl. Sun had already cast its lot with Java by that point. Sun was more positioning Tcl to be its counterpart to VB, just as Java was its conterpart to VC++. However, I think it's probably arguable that enclosing a language is self-defeating. Eventually, Sun fell victim to its own hype and decided to push Java in both tiers. Tue Sep 12 19:03:17 2006 62.112.158.224 MSG ircbridge: serg says: i think Sun is not sponsoring tcl development any more, right? Tue Sep 12 19:04:00 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;kbk&gt; serg: Correct: Sun decided that Tcl was diluting its Java message and allowed JKO to found Scriptics. Tue Sep 12 19:04:25 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;kbk&gt; About half of John's team came with him; the other half found other positions at Sun and elsewhere. Tue Sep 12 19:05:03 2006 62.112.158.224 MSG ircbridge: serg says: so he founded scriptics, enterprise has ended and now it is leading Electic cloud Tue Sep 12 19:05:15 2006 62.112.158.224 MSG ircbridge: serg says: Electric cloud* Tue Sep 12 19:05:32 2006 62.112.158.224 MSG ircbridge: * serg feeling hard pain on the right hand Tue Sep 12 19:05:57 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;kbk&gt; Scriptics renamed itself to Ajuba Solutions. Tue Sep 12 19:07:26 2006 62.112.158.224 MSG ircbridge: serg says: domain <A HREF="chat2.cgi?action=gotourl&url=http://www.ajubasolutions.com/ " TARGET="linkwindow">http://www.ajubasolutions.com/</A > seems to be expired Tue Sep 12 19:07:31 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;kbk&gt; Ajuba found itself the target of a takeover by Interwoven, which (I speculate) bought it in an effort to kill Tcl - because of the fact that its largest competitor, Vignette, was heavily invested in Tcl. Certainly Ajuba didn't remain as a singificant presence after the buyout. Tue Sep 12 19:09:29 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;kbk&gt; Of course, Ajuba had significantly diluted its position by that point by trying to present itself as a vendor of B2B middleware; John once described Tcl as the "secret sauce" in Ajuba's B2B offerings. Tue Sep 12 19:10:48 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Cameron&gt; That story deserves treatment in the *New Yorker*. It's hilarious. Tue Sep 12 19:10:56 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;miguel&gt; nowadays, the way to kill Tcl would be what? Sending each developper five cases of assorted premium single malts? Tue Sep 12 19:10:57 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;kbk&gt; In the course of the wreck of Ajuba, John found himself reasonably wealthy, and was semi-retired for a little while at least before deciding to found Electric Cloud. Tue Sep 12 19:11:39 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Cameron&gt; 'Makes sense to me. Tue Sep 12 19:12:01 2006 62.112.158.224 MSG ircbridge: * ijchain miguel fears that the real answer would be: make eggdrop THE teenager app :o Tue Sep 12 19:12:36 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;kbk&gt; And since Interwoven had no interest in supporting Scriptics's TclPro customers, John quietly released TclPro to the open source. Tue Sep 12 19:12:38 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Cameron&gt; Just take out Western civilization. That would suffice. Tue Sep 12 19:12:50 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;kbk&gt; Under the Tcl license. Tue Sep 12 19:13:37 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;kbk&gt; ActiveState saw a business opportinity there, and began building TDK at least partly from a closed-source fork of TclPro. Tue Sep 12 19:14:24 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; Reading the O'Reilly rendering of events ... it seems that RMS, having suffered a series of setbacks, needed for psychological reasons to strike someone. Tue Sep 12 19:14:42 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; Becoming strident, because he feared becoming irrelevant. Tue Sep 12 19:15:09 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Cameron&gt; Colin, are you going to work your personal language-dual ruminations into <A HREF="chat2.cgi?action=gotourl&url=http://wiki.tcl.tk/16717 " TARGET="linkwindow">http://wiki.tcl.tk/16717</A > Tue Sep 12 19:15:18 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Cameron&gt; I encourage you to do so. Tue Sep 12 19:15:41 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;kbk&gt; That's certainly Sam Williams's view of the matter. RMS is a complex and often puzzling figure - explanations like that are far too simplistic to explain him. Tue Sep 12 19:15:42 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; Cameron, yes I am. I started a little text on precisely why tcl's a good abstract machine for this purpose. Tue Sep 12 19:15:54 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Cameron&gt; Stride on. Tue Sep 12 19:18:07 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; kbk, it seems to me that RMS needs to be asked whether he accepts that his condemnation of tcl7.6 is now obsolete. Tue Sep 12 19:18:32 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; Cameron, are you aware of any other language having anything like uplevel ? Tue Sep 12 19:19:38 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; Because, as mentioned, that seems to me to be the thing unifying LLs as a component of tcl with whatever virtue tcl has as a LOP platform. Hence significant, if different. Tue Sep 12 19:19:41 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;kbk&gt; Cameron - The hilarious story, alas, is something that I couldn't really put in print, for lack of evidence; I reconstruct it from whisperings in hotel hallways and drunken ravings of the tangentially involved. Tue Sep 12 19:20:42 2006 62.112.158.224 MSG ircbridge: * ijchain dkf back Tue Sep 12 19:20:50 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;miguel&gt; "something that I couldn't really put in print, for lack of evidence"? I do not see that you'd have a career in politics, stick to tech Tue Sep 12 19:20:58 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;kbk&gt; Colin - uplevel is similar to the various forms of macro in lisp Tue Sep 12 19:21:20 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; kbk, except macros are expanded prior to evaluation, I think. Tue Sep 12 19:21:28 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; as macros tend to be :) Tue Sep 12 19:21:52 2006 62.112.158.224 MSG ircbridge: serg says: tcl is still alive, but is is hibernating Tue Sep 12 19:22:04 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; No doubt similar in effect, and purpose, but more like #define than uplevel no? Tue Sep 12 19:22:15 2006 62.112.158.224 MSG ircbridge: serg says: never more comes out tcl 8.5 or tcl 9 Tue Sep 12 19:22:29 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;miguel&gt; if I/we/someone finds a way to have bcc speed in uplevel scripts ... it could change a lot of things Tue Sep 12 19:22:36 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; I guess the distinction as to when they're run is probably irrelevant, though. Tue Sep 12 19:23:08 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; miguel, can't you compile in a given scope? I guess the problem is where do you keep the compilation products, huh. Tue Sep 12 19:23:31 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;miguel&gt; no - the problem is slow access to the variables in the up-context Tue Sep 12 19:24:07 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;kbk&gt; Colin (eval) and (apply) with optional args specifying the binding environment used to be a commonplace in Lisp. Tue Sep 12 19:24:07 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; I mean the problem of compiling in the up-scope is not having anywhere to keep the bytecode. Tue Sep 12 19:25:03 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;kbk&gt; Eventually, the Lispers found the case for strict lexical scoping, tailcalls, and call/cc to be compelling enough that explicit binding enviorments were sacrificed in their favour. Tue Sep 12 19:25:13 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; kbk, the binding environment was specified as in (letrec)? Tue Sep 12 19:25:56 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;miguel&gt; the compilation product is kept in the tcl_obj, and we do compile uplevel scripts. But one of the major wins of bcc is the fast var access, and that we do not have Tue Sep 12 19:25:56 2006 62.112.158.224 MSG ircbridge: serg says: kbk: what is behind the "next VErsion of tcl never more comes out" fact? the missing of new features or debugging? Tue Sep 12 19:26:22 2006 62.112.158.224 MSG ircbridge: *** lectus joins Tue Sep 12 19:26:24 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; miguel, can you explain to me why we don't? Tue Sep 12 19:26:28 2006 62.112.158.224 MSG ircbridge: * ijchain dkf has enjoyed reading kbk's history lesson Tue Sep 12 19:26:39 2006 62.112.158.224 MSG ircbridge: * serg too Tue Sep 12 19:27:26 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;kbk&gt; Colin - Originally the binding environment was just an alist, but eventjually became an opaque thing for the sake of performance. Tue Sep 12 19:27:27 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;miguel&gt; serg: because we keep adding features to the current (major) version, and no change has been compelling enough to justify the hassle of talking people into upgrading ... Tue Sep 12 19:27:38 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;miguel&gt; ... so many are still using 8.0 :o Tue Sep 12 19:27:57 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;dkf&gt; It was an alist to start with? Oooh. Ugh. Tue Sep 12 19:28:15 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;miguel&gt; Colin: in a proc body, we know which are the local vars at compile time, and access them by an offset into a locals table Tue Sep 12 19:28:24 2006 62.112.158.224 MSG ircbridge: serg says: yeah, but 8.5 is an alpha since .... i don't remember Tue Sep 12 19:28:35 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;miguel&gt; an uplevel script cannot know which are its local vars until runtime Tue Sep 12 19:28:39 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; Yes, dkf. I think they were called ummm ... Weisenbaum environments, and there's a beautiful bit of link-bending code to perform context switches. Tue Sep 12 19:28:51 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;dkf&gt; 8.5 has been in alpha ever since the day 8.4.2 came out Tue Sep 12 19:29:00 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; I mean *beautiful*, it works for pushing and popping environments. Tue Sep 12 19:29:04 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;miguel&gt; so it needs a hash-based access (or worse ...) Tue Sep 12 19:29:09 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; same code - reversible. Tue Sep 12 19:29:40 2006 62.112.158.224 MSG ircbridge: serg says: i think the TIP's process too bureaucratique Tue Sep 12 19:29:55 2006 62.112.158.224 MSG ircbridge: serg says: i dont' know tha correct spelling Tue Sep 12 19:29:56 2006 62.112.158.224 MSG ircbridge: serg says: :P Tue Sep 12 19:30:00 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; miguel, so the uplevel expression is compiled at the same time as the enclosing proc? Tue Sep 12 19:30:01 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;dkf&gt; You're entitled to your opinion Tue Sep 12 19:30:25 2006 62.112.158.224 MSG ircbridge: serg says: dkf: that was for mw? Tue Sep 12 19:30:29 2006 62.112.158.224 MSG ircbridge: serg says: dkf: that was for me? Tue Sep 12 19:30:30 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;kbk&gt; Now, the fact that an uplevel script doesn't know its vars until runtime is both a blessing and a curse. I would often prefer uplevel scripts to be honest-to-$env(LC_DEITY) closures. Tue Sep 12 19:30:31 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;dkf&gt; yse Tue Sep 12 19:30:46 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;miguel&gt; serg: you are welcome to compare Tcl's alpha stability and performance to many betas, or even released packages Tue Sep 12 19:30:49 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;Colin&gt; I thought clue was what entitled one to an opinion, but what would I know? Tue Sep 12 19:30:53 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;kbk&gt; serg - I've gotten noncontroversial TIPs through in a week. Tue Sep 12 19:31:19 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;dkf&gt; Colin: Everyone has opinions. Not everyone has clueful opinions or informed opinions. Tue Sep 12 19:31:25 2006 62.112.158.224 MSG ircbridge: serg says: what are you meaning with noncontroversial? Tue Sep 12 19:31:30 2006 62.112.158.224 MSG ircbridge: * ijchain Colin is reminded of the board meeting in MP's meaning of life. Tue Sep 12 19:31:54 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;dkf&gt; serg: Look at TIP#260 Tue Sep 12 19:31:57 2006 62.112.158.224 MSG ircbridge: ijchain says: &lt;kbk&gt;