"Why you should not use Tcl"

197 views
Skip to first unread message

Richard M. Stallman

unread,
Apr 24, 1996, 3:00:00 AM4/24/96
to

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.)

bmb...@acsu.buffalo.edu

unread,
Apr 24, 1996, 3:00:00 AM4/24/96
to
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

Brian Gough

unread,
Apr 24, 1996, 3:00:00 AM4/24/96
to

> (Guile is available for test building from
> alpha.gnu.ai.mit.edu:pub/gnu/guile-1.0b0.tar.gz

if you're eager to get guile-1.0b immediately the alpha pathname needs
correcting, I found it in

alpha.gnu.ai.mit.edu:gnu/guile-1.0b0.tar.gz

(/pub/gnu does not exist, /gnu does)

--
Brian Gough

b...@fnal.gov
http://www-theory.fnal.gov/people/bjg/gough.html


Russell Nelson

unread,
Apr 25, 1996, 3:00:00 AM4/25/96
to
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.

Tom Sandholm

unread,
Apr 25, 1996, 3:00:00 AM4/25/96
to
Russell Nelson (nel...@ns.crynwr.com) wrote:
: 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.

You must like to do things the HARD way!!!

Miles Bader

unread,
Apr 25, 1996, 3:00:00 AM4/25/96
to
In article <NELSON.96A...@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!

Steve Tinney

unread,
Apr 25, 1996, 3:00:00 AM4/25/96
to
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

Michael Maxie

unread,
Apr 25, 1996, 3:00:00 AM4/25/96
to
>>>>> "ST" == Steve Tinney <s...@enlil.museum.upenn.edu> writes:
In article <4loh0p$f...@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.

-From: rms@beehive (Richard M. Stallman)
-Organization: "emf.net" Quality Internet Access. (510) 704-2929 (Voice)
-Reply-To: r...@gnu.ai.mit.edu
-Path: nntp.crl.com!howland.reston.ans.net!newsfeed.internetmci.com!news.emf.net!news.emf.net!rms
-Message-ID: <RMS.96Apr24125747@beehive>
-NNTP-Posting-Host: 205.149.2.202


<SNIP>

Regards,
--
Michael Maxie ma...@acm.org
Software Engineer ma...@crl.com
Under Construction --> http://www.crl.com/~maxie

Erik Naggum

unread,
Apr 25, 1996, 3:00:00 AM4/25/96
to
[Steve Tinney]

| 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.

(this has been a public service announcement.)

--
reinvention is its own reward

Tim Pierce

unread,
Apr 25, 1996, 3:00:00 AM4/25/96
to
In article <tyybnkc...@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.
>
>-From: rms@beehive (Richard M. Stallman)
>-Organization: "emf.net" Quality Internet Access. (510) 704-2929 (Voice)
>-Reply-To: r...@gnu.ai.mit.edu
>-Path: nntp.crl.com!howland.reston.ans.net!newsfeed.internetmci.com!news.emf.net!news.emf.net!rms
>-Message-ID: <RMS.96Apr24125747@beehive>
>-NNTP-Posting-Host: 205.149.2.202

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.

Jacob Levy

unread,
Apr 25, 1996, 3:00:00 AM4/25/96
to
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 <tyybnkc...@acm.org> Michael Maxie <ma...@acm.org> writes:

>>>>> "ST" == Steve Tinney <s...@enlil.museum.upenn.edu> writes:
In article <4loh0p$f...@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.

-From: rms@beehive (Richard M. Stallman)
-Organization: "emf.net" Quality Internet Access. (510) 704-2929 (Voice)
-Reply-To: r...@gnu.ai.mit.edu
-Path: nntp.crl.com!howland.reston.ans.net!newsfeed.internetmci.com!news.emf.net!news.emf.net!rms
-Message-ID: <RMS.96Apr24125747@beehive>
-NNTP-Posting-Host: 205.149.2.202

<SNIP>

Jamie L. Raymond

unread,
Apr 26, 1996, 3:00:00 AM4/26/96
to

>-From: rms@beehive (Richard M. Stallman)
>-Organization: "emf.net" Quality Internet Access. (510) 704-2929 (Voice)
>-Reply-To: r...@gnu.ai.mit.edu
>-Path:nntp.crl.com!howland.reston.ans.net!newsfeed.internetmci.com!news.emf.net!news.emf.net!rms
>-Message-ID: <RMS.96Apr24125747@beehive>
>-NNTP-Posting-Host: 205.149.2.202

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.

==Jamie
jray...@gnu.ai.mit.edu
--
Jamie L. Raymond Eskridge, Kansas
jray...@gnu.ai.mit.edu http://nyx10.cs.du.edu:8001/~jraymond

Jamie L. Raymond

unread,
Apr 26, 1996, 3:00:00 AM4/26/96
to

In article <JYL.96Ap...@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.

Bradley M. Kuhn

unread,
Apr 26, 1996, 3:00:00 AM4/26/96
to

In article <sh1n33z...@delasyd.gnu.ai.mit.edu>,

Jamie L. Raymond <jray...@gnu.ai.mit.edu> wrote:


>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

Dale.Parson

unread,
Apr 26, 1996, 3:00:00 AM4/26/96
to

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.


Dale Parson, Bell Labs, da...@aloft.att.com

----------------------------------------------------------------------
| "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 |
----------------------------------------------------------------------

Benedikt Stockebrand

unread,
Apr 26, 1996, 3:00:00 AM4/26/96
to

In article <NELSON.96A...@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.

Not this one again, PLEASE...


Ben
--
Benedikt (Ben) Stockebrand Runaway ping.de sysadmin
bene...@devnull.ruhr.de --- Never ever trust old friends ---
Dortmund, Germany

Randy Chapman

unread,
Apr 26, 1996, 3:00:00 AM4/26/96
to

: 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 ?

--randy


Tom Lord

unread,
Apr 27, 1996, 3:00:00 AM4/27/96
to

: 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.

-t


Tom Lord

unread,
Apr 27, 1996, 3:00:00 AM4/27/96
to

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.

That's alpha.gnu.ai.mit.edu:gnu/guile-1.0b0.tar.gz

-t


Marcus Daniels

unread,
Apr 27, 1996, 3:00:00 AM4/27/96
to

>>>>> "Dale" == Dale Parson <da...@bianca.cnet.att.com> writes:
In article <4lqkom$t...@nntpa.cb.att.com> da...@bianca.cnet.att.com (Dale.Parson) writes:

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. ;-)


Dan Haskell

unread,
Apr 29, 1996, 3:00:00 AM4/29/96
to

Dale.Parson (da...@bianca.cnet.att.com) wrote:
: 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 -

Reply all
Reply to author
Forward
0 new messages