Re: Why you should not use Tcl

Wayne Throop (throopw%sheol.uucp@dg-rtp.dg.com)
4 Oct 1994 16:54:25 GMT

: From: bevan@cs.man.ac.uk (Stephen J Bevan)
: I agree that there is an impedance mismatch between Lisp/Scheme (and
: many other languages e.g. Smalltalk) and the Unix way of working.
: However, I think two questions need to be answered before reading too
: much in to this: a) is the Unix method a good way of working and b)
: does it even matter since "the market" predominantly buys Microsoft
: operating systems which don't follow the Unix approach?

Which is a good point. But I wasn't trying to say that the unix
approach is the be-all and end-all. I was using it as an example of
why a text-based glue can be language-neutral, and allow multiple
notations to co-exist, rather than tending to try to cast everything
into a single notation.

In the non-Unix environment, whether Mac, Mach, Microsoft or Mainframes,
the de-facto interlanguage-language is text. There are many reasons
for this, but perhaps primarily
- Because computers interact with humans, there always has to be
a way to refer to computer goings-on in human-readable form.
GUI is great, but text tends to be more compact and portable.
- All languages must be able to deal minimally with text, yet it may
be prohibitive to do an API for every language in a multi-language
environment, to manipulate abstractions with no intermediate notation.
- Cutting across abstraction layers to manipulate text lexically
instead of in syntactic or semantic units is often a big win, eg,
macro languages, regex manipulations, and many other techniques.
This pays off best if there is a *portable* common low-level
representation to cut across to.

Not that lisp/scheme is all that bad in this area. "Everything is
an S-expression" can imply pretty directly that everything is
text-able. I think that's a good thing in this context. But there
is, I think, that extra little bit of language-neutrality and
multiple-language leverage to be gained by *defining* things in
terms of their textual forms, as opposed to their internal forms
in a specific language that *has* a textual form for everything.

So ANYway, I think my points are independent of unix-ness. They *are*
predicated upon the goodness multi-language-ness, which I suppose itself
is not universally accepted. But the implementation-neutral and
language-neutral nature of textual definitions seems to *me* to pay off
bigtime, for one of many examples, in the TCP/IP protocol suites such as
nntp, http, and many others. Nobody has to care that some servers or
clients are written in perl, some in C, some in lisp, some in (ack!)
shell scripts, and some doubtless in things much more exotic.
Distributed programming as we know it wouldn't be what it is today
without the (relatively) simple, neutral nature of TCP/IP, and again,
that applies to Mac, Microsoft, and Many More environments beyond unix.

--
Wayne Throop   throopw%sheol.uucp@dg-rtp.dg.com
               throop@aur.alcatel.com