Some time ago, a post appeared on this and other groups called "Why you should not use Tcl". At the time, the post sparked quite a bit of controversy. In and of itself, controversy isn't a bad thing -- I'm used to controversy. But the post had a much more insidious effect -- one that I can not, in good conscience, allow to persist. I'm posting today to try to make amends -- to undo the insidious effects of that earlier post.
The infamous post stated a new GNU coding standard: that GNU programs should not be written in the Tcl programming language. The GNU coding standards should be rules of thumb, put together to help make sure the GNU system is maintainable and consistent with itself. For example, one coding standard describes the preferred way for code to be indented. Another standard recommends that programmers use variable names spelled entirely with lower case letters: "names_like_this" instead of "NamesLikeThis". If you look carefully, you'll see that not all GNU programs strictly adhere to the coding standards. I would never want to tell a maintainer that she *must* use "names_like_this" or else stop contributing to GNU -- that would be petty and foolish. I do, however, like to encourage programmers to stick to the standards as much as I can.
The same infamous post announced a new project that is now called "Guile". Guile is an embeddable programming language much like Tcl, but with some differences too. For example, Guile is based on Scheme and does not rely so heavily on strings to represent all data types. At the time, being a bit naive about just what Tcl is and is becoming, I wanted to "replace" libtcl -- now I hope I'm a little bit smarter than that. I'll say a little bit more about Guile later in this post, but first I want to come clean about the insidious effects of the original "Why you should not use Tcl" and do what I can to correct the problems I created.
Shortly after the original post went out, I began to hear others describe it. They used words like "holy war" and "religious battle". Not just one or two people said this -- it was a widely held opinion. People read the coding standard, and concluded (not without reason) that I meant to try to "kill Tcl". Such conclusions might give me a bad reputation in some circles, and I could live with that. But such conclusions can also fracture the community of people who write Free Software into two warring factions -- factions that refuse to cooperate and that even go so far as to duplicate each others work for no other reason than to win the war. I can't brush off the mistake of having created such factions, even by accident. I have to do what I can to end the war that was started in my name.
We've all seen exactly these kinds of wars carried out on a grand scale between factions of those who write *proprietary* software. We've all seen the terrible waste that happens when company A writes one program and then company B feels compelled to rewrite essentially the same program with the aim of putting A out of business and its programmers out on the street. Everybody loses in that kind of war. The people in company A lose when company B steals their livelihood. The people in company B lose because instead of building creatively on a foundation already laid, they only get to dig a new foundation along side the first. And the users suffer too -- they get to wait around in the rain for the completion of a usable building while A and B dig foundation after foundation arguing all the while about which is best.
It was a war of this sort, between the authors of operating systems for Lisp machines, that inspired the start of the Gnu Project in the first place; it was in order to avoid wars like this that the concept of Free Software was invented. While the proprietary Lisp hackers fought with each other, their industry slowly became extinct. Would their industry still have died out if they had cooperated? We'll never know -- but we do know that meanwhile the GNU project is still going strong and that the Free Software Movement has taken on world-wide proportions.
In a Free Software world, the As and Bs may still compete, but they don't need to try to compete by putting each other out of business. Instead, they compete by each trying to do something new and original, something unique and valuable. In this world, the competition between A and B isn't the digging of one foundation after another -- its the addition of one improvement after another to the building that both share.
Think, if you will, of the proprietary world as one in which A and B are locked in a circular track, compelled to chase each other in an endless, monotonous race. After a while you might even have trouble telling who is chasing and who being chased -- all you see is A and B going round and round in one place, covering the same ground again and again. The ultimate goal of each is to catch and kill the other. I suppose the winner, if there could ever be one, would then have the "privilege" of jogging in his own private little circle from then on, going nowhere fast, for nobody.
In the Free Software world, you can think of A and B as running a race on an endless upwards spiral. The goal is to carry the race higher and higher on this spiral -- to reach new heights that have never before been reached -- to make new and better programs than have ever been seen before. The goal of this game is to keep the competition going as long as possible -- not to kill your opponent, but to play leapfrog with them.
Everybody can win. A and B each get to express themselves with creativity and originality. As the game progresses up the spiral, everybody -- users and A and B alike -- are all taken to new heights and a better world.
I think many of you already know these things, but I wanted to go on record that there are contributors to GNU who know them, too.
So please, let GNU have its coding standards. We will forever be the team that likes to code in Scheme, not Tcl. But let's not fight about it. Let's each enjoy the best Scheme programs and the best Tcl programs for what they are -- fun toys and useful tools. Let's pull each other to greater heights by making the most of each others efforts. No more religious wars, and no more time to hate.
I said before that I would return to the subject of Guile in this post. I've gone on for so many words that I'll make this brief. The first official release of Guile is just about ready -- we're calling this beta release "guile-1.0b0". The new release is designed not only as Scheme-in-a-library, not only as an environment for those who prefer Scheme to Tcl, but also as a proper Tcl package -- one that Tcl programmers may want to consider as a portable alternative to writing dynamically loaded C code. There's much more to do. Almost every aspect of Guile is new and well deserving of the designation "beta". Members of the GNU project already know of numerous minor problems that will need to be corrected. I think Guile is useful, nonetheless, but it ain't going noplace until we put fighting aside and get on with sharing the source.
Happy when hacking, Tom Lord
(Guile is available for test building from alpha.gnu.ai.mit.edu:pub/gnu/guile-1.0b0.tar.gz It will soon appear on prep.ai.mit.edu and the usual GNU mirror sites. Please check it out, or, if you don't want to do that, write some really great Tcl code instead.)
In article <RMS.96Apr24125747@beehive> rms@beehive (Richard
M. Stallman) writes:
[A huge chunk deleted]
Happy when hacking, Tom Lord
Interesting... Was this post from RMS or from Tom Lord?
If it was from RMS, I'm impressed. It actually has a chance of not starting a holy war (unlike many/most of the posts from RMS I've seen in the past).
If it was from Tom Lord, why post under RMS's name? (or would I know this if I still read gnu.misc.discuss?) -- -- Buddha Buck bmb...@acsu.buffalo.edu "She was infatuated with their male prostitutes, whose members were like those of donkeys and whose seed came in floods like that of stallions." -- Ezekiel 23:20
In article <RMS.96Apr24125747@beehive> rms@beehive (Richard M. Stallman) writes:
> We will forever be the team that likes to code in Scheme, not Tcl.
I'm a contributor to the GNU project, and personally, I have no use for Scheme OR TCL. Give me Perl any day.
-- -russ <nel...@crynwr.com> http://www.crynwr.com/~nelson Crynwr Software | Crynwr Software sells packet driver support | PGP ok 11 Grant St. | +1 315 268 1925 voice | It's no mistake to err on Potsdam, NY 13676 | +1 315 268 9201 FAX | the side of freedom.
: In article <RMS.96Apr24125747@beehive> rms@beehive (Richard M. Stallman) writes:
: > We will forever be the team that likes to code in Scheme, not Tcl.
: I'm a contributor to the GNU project, and personally, I have no use : for Scheme OR TCL. Give me Perl any day.
: -- : -russ <nel...@crynwr.com> http://www.crynwr.com/~nelson : Crynwr Software | Crynwr Software sells packet driver support | PGP ok : 11 Grant St. | +1 315 268 1925 voice | It's no mistake to err on : Potsdam, NY 13676 | +1 315 268 9201 FAX | the side of freedom.
In article <NELSON.96Apr25100...@ns.crynwr.com> nel...@ns.crynwr.com (Russell Nelson) writes: > I'm a contributor to the GNU project, and personally, I have no use > for Scheme OR TCL. Give me Perl any day.
We're very happy for you. -- Miles Bader / mi...@gnu.ai.mit.edu / (617) 253-8568 Amadera e ike!
I am happy to see this rational, clearly written and well-argued post, but I am confused about its authorship. Why does the header tell me it is Richard M. Stallman, when it appears to be signed by Tom Lord?
-- Steve Tinney Babylonian Section University of Pennsylvania Museum s...@enlil.museum.upenn.edu Phila, PA. 215-898-4047
>>>>> "ST" == Steve Tinney <s...@enlil.museum.upenn.edu> writes: In article <4loh0p$...@netnews.upenn.edu> s...@enlil.museum.upenn.edu (Steve Tinney) writes:
ST> I am happy to see this rational, clearly written and well-argued ST> post, but I am confused about its authorship. Why does the ST> header tell me it is Richard M. Stallman, when it appears to be ST> signed by Tom Lord?
I haven't paid attention to the headers of all RMS post that I've read, but the I've seen originate from r...@gnu.ai.mit.edu. This header looks a little suspicious.
| I am happy to see this rational, clearly written and well-argued post, | but I am confused about its authorship. Why does the header tell me it | is Richard M. Stallman, when it appears to be signed by Tom Lord?
RMS has confirmed that he has not written it, and I inferred from his reply that he was unaware of the article until I brought it to his attention.
Tom Lord has likewise confirmed that he is the article's real author, and furthermore indicated that he intended replies to go to RMS.
In article <tyybnkc4mk....@acm.org>, Michael Maxie <ma...@acm.org> wrote:
>I haven't paid attention to the headers of all RMS post that I've >read, but the I've seen originate from r...@gnu.ai.mit.edu. This >header looks a little suspicious.
Tom Lord has been posting periodically from emf.net. I presume that rms asked Tom to post this piece on his behalf.
-- By sending unsolicited commercially-oriented e-mail to this address, the sender agrees to pay a $100 flat fee to the recipient for proofreading services.
For those that don't know, area code 510 is in the East SF Bay, which is about 3000 miles from where RMS has his office. I think we should encourage RMS to post from MIT to verify that this message is indeed bona fide.
--JYL
In article <tyybnkc4mk....@acm.org> Michael Maxie <ma...@acm.org> writes:
>>>>> "ST" == Steve Tinney <s...@enlil.museum.upenn.edu> writes: In article <4loh0p$...@netnews.upenn.edu> s...@enlil.museum.upenn.edu (Steve Tinney) writes:
ST> I am happy to see this rational, clearly written and well-argued ST> post, but I am confused about its authorship. Why does the ST> header tell me it is Richard M. Stallman, when it appears to be ST> signed by Tom Lord?
I haven't paid attention to the headers of all RMS post that I've read, but the I've seen originate from r...@gnu.ai.mit.edu. This header looks a little suspicious.
Tom Lord has been posting periodically from emf.net. I presume that rms asked Tom to post this piece on his behalf.
rms did not write this article. I believe he had no knowledge of it until after it had been posted. Tom Lord should explain why he used an rms account to post it. It was obvious that it would cause confusion.
In a message from rms he assured me that he does not support Tom Lord's current design of Guile which uses and contains all of Tcl. He concluded it by saying, "Guile is supposed to replace Tcl, not add on to it."
Tom Lord sent me the following new entry from the Guile FAQ. He did not include a header remark for it. Perhaps he'll post the entire entry.
I'm disappointed that RMS hasn't learned to distinguish between the Tcl programming language, which I agree we should avoid for software engineering reasons, and the Tcl C library, which is extremely useful and is some free software we should make the most of.
I hope that he will retract his instance on replacing "libtcl" because it contains some quite excellent code. I for one see no reason to try to replace this code and feel sorry for any lackey who might be compelled to do so.
In article <JYL.96Apr25165...@noam.eng.sun.com> j...@noam.eng.sun.com (Jacob Levy) writes:
For those that don't know, area code 510 is in the East SF Bay, which is about 3000 miles from where RMS has his office. I think we should encourage RMS to post from MIT to verify that this message is indeed bona fide.
rms did not write this message. It was signed by Tom Lord -- he wrote it. rms does not read Usenet News.
>In a message from rms he assured me that he does not support Tom Lord's >current design of Guile which uses and contains all of Tcl. He >concluded it by saying, "Guile is supposed to replace Tcl, not add on >to it."
>Tom Lord sent me the following new entry from the Guile FAQ. He did >not include a header remark for it. Perhaps he'll post the entire >entry.
> I'm disappointed that RMS hasn't learned to distinguish between > the Tcl programming language, which I agree we should avoid for > software engineering reasons, and the Tcl C library, which is > extremely useful and is some free software we should make the most > of.
> I hope that he will retract his instance on replacing "libtcl" > because it contains some quite excellent code. I for one see no > reason to try to replace this code and feel sorry for any lackey > who might be compelled to do so.
It's too bad that we see people in the free software community disagreeing with such an awful vigor.
I wish that we could all work together toward a common goal, and try to keep all our tools integrated... -- -- Bradley M. Kuhn Contractor to Lucent Technologies - Bell Labs Innovations bk...@acm.org oe...@nse.att.com http://www.smart.net/~bkuhn
In article <RMS.96Apr24125747@beehive>, Richard M. Stallman (OR APPARENTLY Tom Lord) <r...@gnu.ai.mit.edu> wrote:
>We've all seen exactly these kinds of wars carried out on a grand >scale between factions of those who write *proprietary* software. >We've all seen the terrible waste that happens when company A writes >one program and then company B feels compelled to rewrite essentially >the same program with the aim of putting A out of business and its >programmers out on the street. Everybody loses in that kind of war. >The people in company A lose when company B steals their livelihood. >The people in company B lose because instead of building creatively on >a foundation already laid, they only get to dig a new foundation along >side the first. And the users suffer too -- they get to wait around >in the rain for the completion of a usable building while A and B dig >foundation after foundation arguing all the while about which is best.
Maybe company A has crappy software or crappy pricing.
The GNU folks have an interesting philosophy, although I will admit that I had my taste of communal living--muddy roads, outhouses and too many people in a house--in the early 70's. I would constructively suggest that they read some of the research literature from genetic algorithms / genetic programming, specifically the stuff that relates to competitive coevolution, predator / prey coevolution and genetic arms races, for both the negative AND positive contributions they make to development. The thrust is that opponents are good for knocking stale, sub-optimal solutions off of their local thrones. Maybe Hillis' research on this stuff would be acceptable to GNU-dom.
I think J. Ousterhout has made an advance in bagging any element of copy-leftness from Tcl, and that as much as anything helps account for the popularity of the thing. There's no control strings attached.
>Think, if you will, of the proprietary world as one in which A and B >are locked in a circular track, compelled to chase each other in an >endless, monotonous race. After a while you might even have trouble >telling who is chasing and who being chased -- all you see is A and B >going round and round in one place, covering the same ground again and >again. The ultimate goal of each is to catch and kill the other. I >suppose the winner, if there could ever be one, would then have the >"privilege" of jogging in his own private little circle from then >on, going nowhere fast, for nobody.
Sounds like Bill Gates' version of nirvana. Unfortunately Microsoft ain't going commie anytime soon, so unless you think that folks with lots of spare time are gonna give him a run for his money, you'd better hope that there are a lot more folks interested in making money than the one that there's always bound to be.
>Everybody can win. A and B each get to express themselves with >creativity and originality. As the game progresses up the spiral, >everybody -- users and A and B alike -- are all taken to new heights >and a better world.
This whole thing sounds like Trotsky apologizing for Lenin.
---------------------------------------------------------------------- | "These words are too solid, they don't move fast enough | | to catch the blur in the brain that flies by, and is gone..." | ---------------------------------------------------------------------- | Suzanne Vega | ----------------------------------------------------------------------
: Tom Lord sent me the following new entry from the Guile FAQ. He did : not include a header remark for it. Perhaps he'll post the entire : entry.
: I'm disappointed that RMS hasn't learned to distinguish between : the Tcl programming language, which I agree we should avoid for : software engineering reasons, and the Tcl C library, which is : extremely useful and is some free software we should make the most : of.
: I hope that he will retract his instance on replacing "libtcl" : because it contains some quite excellent code. I for one see no : reason to try to replace this code and feel sorry for any lackey : who might be compelled to do so.
Personally, I'm disappointed that Tom Lord chose to force us to install yet *another* hacked version of tcl/tk on our system. Why can't people just use the original one and leave well enough alone ?
: Tom Lord sent me the following new entry from the Guile FAQ. He did : not include a header remark for it. Perhaps he'll post the entire : entry.
No, I won't, for two reasons. First, I used some words in that flame that I wish I hadn't because I think they are probably offensive to lots of people. Right after I sent it to the person who forwarded it here, I rewrote it using different words. Hindsight, 20/20 and all that.
Second, the facts presumed by that flame are, I am happy to report, being disputed. So let me just wait and see how things evolve before I go fanning the fire.
I think I'll just chalk this up as a lesson about how things typed into a computer have a way of showing up where you wish they wouldn't, not least of all if you carelessly mail them beyond their intended audience in the first place.
Personally, I'm disappointed that Tom Lord chose to force us to install yet *another* hacked version of tcl/tk on our system. Why can't people just use the original one and leave well enough alone ?
I thought people might be curious about this, so I included both the patches I applied to Tcl/Tk and documentation describing the patches in the distribution. Both are pretty short.
Dale> I would constructively suggest that they read some of the research Dale> literature from genetic algorithms / genetic programming, Dale> specifically the stuff that relates to competitive coevolution, Dale> predator / prey coevolution and genetic arms races, for both the Dale> negative AND positive contributions they make to Dale> development. The thrust is that opponents are good for knocking Dale> stale, sub-optimal solutions off of their local thrones. Dale> Maybe Hillis' research on this stuff would be acceptable to GNU-dom.
Guile's quick interpreter will be perfect for the GP. Guile's Runqs and I/O channels will be just the thing for distributing the babymakers and the talentscouts across the sea of the GNU compute collective!! We'll simulate our own opponents before we are opposed!! Join us now or... well... let's not dwell on the negative. ;-)
: In article <RMS.96Apr24125747@beehive>, : Richard M. Stallman (OR APPARENTLY Tom Lord) <r...@gnu.ai.mit.edu> wrote: : > : >We've all seen exactly these kinds of wars carried out on a grand : >scale between factions of those who write *proprietary* software.
[huge snip]
: This whole thing sounds like Trotsky apologizing for Lenin.
I see no value in casting this controversy in ideological terms. No one is asking the government to intervene. In a true free market system "communal" operations should be free to compete with the commercial software houses. Let the consumer decide which product meets their needs. In theory, the best software will win.
Unfortunately, in practice, the winner is all too often the organization with the best marketing department. Look at what happens with Microsoft, they turn out crappy software and yet sell millions of copies (you could say that Microsoft is to software what the MacDonalds is to hamburgers :).
Dan Haskell
--
"A fanatic is someone who can't change his mind and won't change the subject." - Winston Churchill -