Account Options

  1. Sign in
The old Google Groups will be going away soon, but your browser is incompatible with the new version.
Google Groups Home
« Groups Home
Ousterhout and Tcl lost the plot with latest paper
There are currently too many topics in this group that display first. To make this topic appear first, remove this option from another topic.
There was an error processing your request. Please try again.
flag
  Messages 251 - 275 of 1243 - Collapse all  -  Translate all to Translated (View all originals) < Older  Newer >
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
Alaric B. Williams  
View profile  
 More options Apr 18 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: ala...@abwillms.demon.co.uk (Alaric B. Williams)
Date: 1997/04/18
Subject: Re: Ousterhout and Tcl lost the plot with latest paper

On Wed, 16 Apr 1997 17:09:56 GMT, ala...@abwillms.demon.co.uk (Alaric

B. Williams) wrote:
>>Ok, most people would put C++ first in the so-called "low-level" power
>>stakes. But it doesn't all go C++'s way. You define low level power as
>>the power to control implementation. Consider that C++ is a strictly
>>stack based language. Unlike Scheme, (or assembler with some tricky
>>mucking around), you can't have multiple "stack-like" environments all
>>existing at once. (i.e. continuations and call/cc).

>>This is a powerful low level feature that C took away from assembler,
>>but Scheme allows.

Iiiii know what I found a little odd about this. Yeah, I don't really
think call/cc is a low level feature. It is a window to something
usually totally hidden by the implementation, but it's not low
level control of the implementation, since you don't know/tell
anything you don't need to when you program continuations. I mean,
accessing the bits of an integer is low level, but being able to
dynamically link libraries in is more a widening of control than of
making control lower-level, IYSWIM...

ABW
--
"Plug and Play support: WfEWAD will autodetect any installed
Nuclear Arsenals, Laser Satellites, Battlefield Control Networks,
Radar Installations, Fighter Squadrons, and other WfEWAD compliant
devices, including the new Macrosoft Unnatural Keyboard, with
full support for the now-famous Big Red Buttom(tm)."

(Windows for Early Warning and Defence User's manual P26)

Alaric B. Williams Internet : ala...@abwillms.demon.co.uk
<A HREF="http://www.abwillms.demon.co.uk/">Hello :-)</A>


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Strings as a uniform representation & tcl" by Alaric B. Williams
Alaric B. Williams  
View profile  
 More options Apr 18 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: ala...@abwillms.demon.co.uk (Alaric B. Williams)
Date: 1997/04/18
Subject: Re: Strings as a uniform representation & tcl

On 17 Apr 1997 16:04:25 GMT, c...@cs.umd.edu (Charles Lin) wrote:

>    Notice this is why I said "if one HAD to" choose a single data type,
>a string would probably be it.    I didn't argue that it was a good idea.
>In other words, given that you had to choose one type that a language
>had to be in, what would you choose?   The problem with lists is that
>a list is really a compound data structure.   For example, in a Lisp
>list (a (b c)), what is "a", "b", and "c"?   Lists are built from
>basic elements.   Yes, yes, you can build up some sort of counting by
>using the empty list and list of empty lists, and so on, but again,
>ease of programming counts.

It's that misconception again! TCL is lists of characters! Scheme has
a load of types which are on equal footings, in that containers and
atoms are interchangeable!

>    My preference is to have multiple types.

What, like TCL does, you mean? :-)

>--
>Charles Lin
>c...@cs.umd.edu

ABW

--
"Plug and Play support: WfEWAD will autodetect any installed
Nuclear Arsenals, Laser Satellites, Battlefield Control Networks,
Radar Installations, Fighter Squadrons, and other WfEWAD compliant
devices, including the new Macrosoft Unnatural Keyboard, with
full support for the now-famous Big Red Buttom(tm)."

(Windows for Early Warning and Defence User's manual P26)

Alaric B. Williams Internet : ala...@abwillms.demon.co.uk
<A HREF="http://www.abwillms.demon.co.uk/">Hello :-)</A>


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Ousterhout and Tcl lost the plot with latest paper" by Ken Tilton
Ken Tilton  
View profile  
 More options Apr 18 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: Ken Tilton <t...@bway.net>
Date: 1997/04/18
Subject: Re: Ousterhout and Tcl lost the plot with latest paper

Pragmatics have no place in a theological debate or language flame war.
They might blow out the fire. <g>

Seriously, offtimes DCL (the VMS shell language) let's me get my job
done. So what? It is not nor does it pretend to be a good language.
We're comparing languages, so I suggest we fight to the death over (or
until we agree upon) The One Best Language for Everything <g>.

I suggest Lisp. Any counter-offers must include full dynamism,
introspection, procedural macros, lexically-scoped closures and generic
functions and must not include static typing. You know, Lisp. <g>

Peace, love and simplicity,

   Ken


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Reply to Ousterhout's reply (was Re: Ousterhout and Tcl ...)" by Alaric B. Williams
Alaric B. Williams  
View profile  
 More options Apr 18 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: ala...@abwillms.demon.co.uk (Alaric B. Williams)
Date: 1997/04/18
Subject: Re: Reply to Ousterhout's reply (was Re: Ousterhout and Tcl ...)

On 15 Apr 1997 18:18:45 GMT, c...@cs.umd.edu (Charles Lin) wrote:

>    If one had to choose a single type for everything, a string is a
>pretty good choice.   Why not a number?  How would you represent a
>string with a number?

Because the fundamental type has to be some kind of list. So really,
the TCL fundamental type is the character, which never exists outside
of a string (much like quarks like to hang around in pairs or threes),
whereas in LISP, there ain't a fundemantal type... you get ints,
chars, etc. which may or may not be inside lists or vectors.

Just thought I'd clear that up.

ABW
--
"Plug and Play support: WfEWAD will autodetect any installed
Nuclear Arsenals, Laser Satellites, Battlefield Control Networks,
Radar Installations, Fighter Squadrons, and other WfEWAD compliant
devices, including the new Macrosoft Unnatural Keyboard, with
full support for the now-famous Big Red Buttom(tm)."

(Windows for Early Warning and Defence User's manual P26)

Alaric B. Williams Internet : ala...@abwillms.demon.co.uk
<A HREF="http://www.abwillms.demon.co.uk/">Hello :-)</A>


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
lvirden  
View profile  
 More options Apr 18 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: lvir...@cas.org
Date: 1997/04/18
Subject: Re: Reply to Ousterhout's reply (was Re: Ousterhout and Tcl ...)

According to Paul Prescod <papre...@csclub.uwaterloo.ca>:
:In article <s6ypvvukubq....@aalh02.alcatel.com.au>,
:Chris Bitmead uid(x22068) <Chris.Bitm...@alcatel.com.au> wrote:
:>none the wiser (apart from awful performance of course). Why do you
:>want to fit everything in a string?? It buys you NOTHING.

Note that Tcl does _not_ store _everything_ in a string.  It uses strings
as the data type to pass between it's commands.

For instance, when one opens a file, one gets back a string whose value
is a handle pointing to an open file descriptor.  The file descriptor remains
the binary structure the OS expects.  The Tk extension's creation of
widgets is another fine example.  I hope that folk don't think that Tcl
somehow converts all the various X window system structures to string to
pass around.  Instead, handles (of type string) for these structures are
created.  When one needs to manipulate the binary entity under one of these
handles, one uses a structure which knows how to move from the string to the
structure and back.

Various other extensions have had great success adding other handles to other
data types.  So in the strictest sense, one is not just limited to strings
in Tcl.  One is, at least pre-Tcl 8.0, limited in treating the _names_
of these entities as strings.
--
Larry W. Virden                 INET: lvir...@cas.org
<URL:http://www.teraform.com/%7Elvirden/> <*> O- "We are all Kosh."
Unless explicitly stated to the contrary, nothing in this posting should
be construed as representing my employer's opinions.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Charles Lin  
View profile  
 More options Apr 18 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
Followup-To: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: c...@cs.umd.edu (Charles Lin)
Date: 1997/04/18
Subject: Re: Reply to Ousterhout's reply (was Re: Ousterhout and Tcl ...)

Erik Naggum (e...@naggum.no) wrote:

|| strings are excellent for external representation, and that's where they
|| should be used.  internal representation should be efficient for the
|| machine.  when and if you need to read or print a value, use the external
|| representation, but as long as you work with it internally, use something
|| more efficient.  where you define yourself relative to "external" is of
|| course an open issue.

     This was the point.   Now, perhaps I completely misunderstood
what Ousterhout did, but I was under the impression that he said
everything in Tcl (the external representation) is a string.  
Why are we talking about internal representations at all?   My
point is that if you had one external type you wanted to use
(and I don't even argue that this is a good idea), I would think
it would be a string.   Internal representations aren't going to
be important because they are hidden from the user (mostly).  Use
whatever representation is useful to get the thing done internally.
That's not what I was addressing.   To repeat, my argument
has absolutely nothing to do with how the computer represents
the language internally.   The point is that (almost) no one wants
to write a program whose *external* representation is numbers.   Strings
are more flexible, if they're the only type you have, as external
representation.

     The argument I've read is (1) numbers can be used to represent
any other (countable) type through Godel enumeration, and (2) computers
use numbers to represent things underneath.   The challenge is this.
You are to write a language for users to use.   I give you one type
that you will give to the user to use.   Would your users prefer
strings or numbers?    I'm not talking about internal representation.
Do I think everything should be strings in a language.  Personally,
no, but given the above, how would you have answered it?

p.s. I understand internal representation vs. external.   Computers
use two's complement signed notation to represent integers and
mostly IEEE 754 floating point representation to represent
floating point numbers with mantissa and exponent.   Strings
are usually represent (in C/C++) as ASCII in consecutive bytes
in memory terminated by a null character.   Each position is
a character in the ASCII character set.

--
Charles Lin
c...@cs.umd.edu


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Abigail  
View profile  
 More options Apr 18 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: abig...@fnx.com (Abigail)
Date: 1997/04/18
Subject: Re: Reply to Ousterhout's reply (was Re: Ousterhout and Tcl ...)

On 18 Apr 1997 11:38:56 +0200, giacomo boffi wrote in
comp.lang.scheme,comp.lang.scheme.scsh,comp.lang.lisp,comp.lang.tcl,comp.la ng.functional,comp.lang.c++,comp.lang.perl.misc,comp.lang.python,comp.lang. eiffel <URL: news:m3g1wooekv.fsf@boffi95.stru.polimi.it>:
++ o...@ds9.rnd.border.com (ozan s. yigit) writes:
++ > life is too short to have to re-respond to the same old bits again
++ > and again, and not everyone has tom christiansen's stamina. :)
++
++ sorry ozan, you were fouled:
++
++         the Tom Christiansen on c.l.p. is an AI perl program
++

And that shows the power of Perl.

Abigail


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Expect in the history of Tcl (was: Ousterhout and Tcl lost the plot with latest paper)" by Cameron Laird
Cameron Laird  
View profile  
 More options Apr 18 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
Followup-To: comp.lang.tcl, comp.lang.misc
From: cla...@Starbase.NeoSoft.COM (Cameron Laird)
Date: 1997/04/18
Subject: Expect in the history of Tcl (was: Ousterhout and Tcl lost the plot with latest paper)

In article <5img9e$...@Masala.CC.UH.EDU>,

cosc1...@bayou.uh.edu <cosc1...@Bayou.UH.EDU> wrote:

                        .
                        .
                        .
>Ok, in all fairness I do have to note this as a contribution on the
>side of Tcl.  I was quite pleased that a language existed to allow
>control of other programs, and did in fact think it was a nifty idea.
>So regardless of my feelings towards Tcl, I do admire the idea of
>Expect.

                        .
                        .
                        .
It's a different contribution than you might
realize.  Don Libes has emphasized, at least
in the writings I've seen, that there's no
necessary connection between Expect and Tcl.
He always expected people to write Expecting
extensions for such other languages as Perl,
Rexx, ...; in fact, there was an Expect (in
C?) *before* he re-did it for Tcl.

Perhaps *that* is some sort of testimony to
Tcl's appropriateness; as straightforward as
it would be to re-do Expect in other lan-
guages, Tcl has always been good enough, and
so the migration has never been done.

I've trimmed follow-ups.
--

Cameron Laird           http://starbase.neosoft.com/~claird/home.html
cla...@NeoSoft.com      +1 713 623 8000 #227
                        +1 713 996 8546 FAX


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Reply to Ousterhout's reply (was Re: Ousterhout and Tcl ...)" by Paul Prescod
Paul Prescod  
View profile  
 More options Apr 18 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: papre...@csclub.uwaterloo.ca (Paul Prescod)
Date: 1997/04/18
Subject: Re: Reply to Ousterhout's reply (was Re: Ousterhout and Tcl ...)

In article <5j7o20$s1...@news.du.etx.ericsson.se>,

Robert Virding <r...@erix.ericsson.se> wrote:
>In article <E8sJ14...@undergrad.math.uwaterloo.ca>, papre...@csclub.uwaterloo.ca (Paul Prescod) writes:
>>In article <s6ypvvukubq....@aalh02.alcatel.com.au>,
>>Chris Bitmead uid(x22068) <Chris.Bitm...@alcatel.com.au> wrote:
>>>none the wiser (apart from awful performance of course). Why do you
>>>want to fit everything in a string?? It buys you NOTHING.

>>It buys you not having to write string->number. I don't think that this is a
>>big win, but I could see how it would be useful to people who are not used
>>to thinking about data types.

>Actually there is no win at all. If you are going to DO anything with
>the number you need string->number. The question in this case is
>rather WHEN you do the conversion.

No, the system does the conversion implicitly. The user never types
string->number.

>If it is not the language itself then it must be some property of the
>system itself which is useful and not found in other language
>systems. What I don't know.

Tk, which was tied to Tcl in the early days.

 Paul Prescod


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Naggum  
View profile  
 More options Apr 18 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: Erik Naggum <e...@naggum.no>
Date: 1997/04/18
Subject: Re: Reply to Ousterhout's reply (was Re: Ousterhout and Tcl ...)

* Charles Lin
| Now, perhaps I completely misunderstood what Ousterhout did, but I was
| under the impression that he said everything in Tcl (the external
| representation) is a string.  Why are we talking about internal
| representations at all?

because the internal representation in Tcl is the string.

| Internal representations aren't going to be important because they are
| hidden from the user (mostly).

I think you're missing the point all over the place.  Tcl's purpose is to
glue different applications together, but also to do something with the
returned "values" (i.e., output) of these programs.  of course we're
dealing with interfaces where external representations will be used, but
Tcl uses the same external representations for internal purposes, too.
when you execute a numeric operation, the string is converted to a number,
the operation is performed, and then converted back to a string.  in
contrast to this view, AWK converts a string to a number when it is used
for a numeric purpose, and a number to a string when it is used for a
string purpose, but not otherwise.  (at least, this is what I have
understood from what I have read about Tcl.)

| The point is that (almost) no one wants to write a program whose
| *external* representation is numbers.

nobody has suggested they do, and nobody in their right mind would.

| Strings are more flexible, if they're the only type you have, as external
| representation.

but external representations _aren't_ typed!

I'd venture that that's the whole point in using an _untyped_ string (or
even byte-sequence) representation is that whoever reads it would be able
to interpret it, indeed that type would emerge from the interpretation.

#\Erik
--
I'm no longer young enough to know everything.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Ousterhout and Tcl lost the plot with latest paper" by James Logajan
James Logajan  
View profile  
 More options Apr 18 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
Followup-To: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: jam...@netcom.com (James Logajan)
Date: 1997/04/18
Subject: Re: Ousterhout and Tcl lost the plot with latest paper

Ken Tilton (t...@bway.net) wrote:

: Pragmatics have no place in a theological debate or language flame war.
: They might blow out the fire. <g>
...
: We're comparing languages, so I suggest we fight to the death over (or
: until we agree upon) The One Best Language for Everything <g>.
...
: I suggest Lisp. Any counter-offers must include full dynamism,
: introspection, procedural macros, lexically-scoped closures and generic
: functions and must not include static typing. You know, Lisp. <g>

I represent a rabble of one that takes no prisoners! Counterthrust:
where the bleep is human-factors in this never-ending thread? Anybody
care to actually reference what little research has been done in this
area?

I couldn't help but notice that the Ousterhout white paper had only one
reference to one measly result of human factors research; and it came
from a secondary source. I believe that ALL the designers of ALL the languages
this thread is cross-posted to (and many that aren't) didn't even attempt
to study software psychology (or psycholinguistics).

NOTE TO LISP AND FORTH FANS: one important reason your languages
have never caught on may be due to the fact that many natural languages
follow the "subject verb object" form. Usage of SOV, OSV, VSO, and VOS
are less likely (I don't have any references in front of me; if anybody
wants details, I'll try to locate what I have). They also lack visual
redundancy (they aren't alone in this short-coming of course).


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Mike Meyer  
View profile  
 More options Apr 18 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel, comp.lang.rexx
From: bouncen...@contessa.phone.net (Mike Meyer)
Date: 1997/04/18
Subject: Re: Ousterhout and Tcl lost the plot with latest paper

In <MPG.dc132702ba24471989...@news.demon.co.uk>, cyber_sur...@gubbish.wildcard.demon.co.uk (Cyber Surfer) wrote:

> With a mighty <19970417.7DC0A38.8...@contessa.phone.net>,
> bouncen...@contessa.phone.net uttered these wise words...

> > Most programming languages (including
> > ports from Unix) include facilities to talk to these applications.
> So what are people arguing over? The choice of scripting language is
> irrelevant, if the app doesn't dictate any specific language.

Unfortunately, there are people using lesser platforms that don't have
or only recently acquired these facilities, so they can't do that. :-)

And some people just like arguing about religious issues.

> I don't see why MS and Windows developers - and users - should be the
> only people to benefit from this fine idea.

They aren't. Like I said, I (and a few million others) have had the
benefit of this functionality for most of the last decade.

It appears that Unix may get such a solution in the form of
applications that support JVM as a scripting mechanism. This allows
any language that can be used to produce JVM bytecodes to be used for
scripting. There may be technical problems with this solution, but
it's a start.

If you're really interested, I started working on a TCP/IP solution
for this kind of thing a while back. It got aborted by a corporate
takeover, but I may still have the groundwork somewhere (if not, the
critical parts are easy to recreate).

        <mike

--
Do NOT reply to the address in the From: header. Reply to mwm instead
of bouncenews at the same machine. You have been warned.  Sending
unsoliticed email I consider commercial gives me permission to
subscribe you to a mail list of my choice.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Will Duquette  
View profile  
 More options Apr 18 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: w...@peanut.jpl.nasa.gov (Will Duquette)
Date: 1997/04/18
Subject: Re: Ousterhout and Tcl lost the plot with latest paper

In article <s6yn2qxkwix....@aalh02.alcatel.com.au> Chris.Bitm...@alcatel.com.au (Chris Bitmead uid(x22068)) writes:

   The only benefit you claim for Tcl that doesn't also apply to scheme
   is #3. You would like to type...

   func arg1 arg2
   instead of
   (func arg2 arg2)

   Ok, a minor but perhaps valid point if you want dumb users to use it
   like a shell.

And then, he goes on to suggest ways to make Scheme do that.

What I was expressing with my point #3 was a psychological effect, and
it extends to functions written in the language as well as individual
commands, though I notice it most when typing commands interactively.
I also prefer

        if {$x < 3} {
             foo arg1 arg2
        } else {
             bar arg3 arg4
        }

to something like

        (if (< x 3)
         (foo arg1 arg2)
         (bar arg3 arg4))

I confess, though I've toyed with Lisp and Scheme in the past, I'm
primarily a C programmer.  Most of the people I work with are C
or C++ programmers.  The Tcl version gives us warm fuzzies, and
the Scheme version doesn't.

I did a web search yesterday, and found a couple of Scheme
implementations which would probably work as well for my purposes as
Tcl, except for the psychological issues I mention.  If I were
starting over, though, I'd still pick Tcl.  It's plenty good enough,
and it "feels" better to me.  Frankly, that's what's important.

--
--------------------------------------------------------------------------
Will Duquette, JPL  | William.H.Duque...@jpl.nasa.gov
But I speak only    | w...@bean.jpl.nasa.gov
for myself.         | It's amazing what you can do with the right tools.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Martin Cracauer  
View profile  
 More options Apr 18 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: craca...@wavehh.hanse.de (Martin Cracauer)
Date: 1997/04/18
Subject: Re: Ousterhout and Tcl lost the plot with latest paper

d...@danpc.cris.com (Dan Haskell) writes:
>In article <5ilbk6$f8...@news.du.etx.ericsson.se>, Robert Virding wrote:
>[lots snipped]
>>A final question which has long interested me and which seems relevant
>>to this whole discussion: who would use Tcl if it DIDN'T have such a
>>integrated interface to Tk?
>Anyone who wanted a simple scripting language that could be easily embedded
>into their applications. Last time I checked Tcl was the only language you
>could do this with. There was something called libscheme that came close,
>but did not really allow for full integration with the application.

What do you mean by "full integration with the application"? Libscheme
just lets you control the Scheme interpreter from C, what does Tcl has
that helps your integration.

Talking of Scheme's for embedding:

mzscheme is built on top of libscheme and somewhat more under
developement. Uses the same C call interface (and a slightly screwup
up install procedure). Mzscheme also has support for Guile's C
interface.

SCM and Guile are another line, using a different interface (two, to
be precises), a faster interpreter than libscheme that is slower at
startup.

The third is Elk, which focuses on using C from Lisp, can load object
files at runtime. The other systems work the other way round, by
linking the C program with a scheme lib.

Elk is very descent, libscheme as well, but guile-1.0 lacked suport
for important functions when it comes to embedding (the current
snapshots have them) and Scm is somewhat hard to build for
non-experienced people.

Martin
--
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%
Martin_Craca...@wavehh.hanse.de http://cracauer.cons.org  Fax.: +4940 5228536
"As far as I'm concerned,  if something is so complicated that you can't ex-
 plain it in 10 seconds, then it's probably not worth knowing anyway"- Calvin


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Naggum  
View profile  
 More options Apr 19 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: Erik Naggum <e...@naggum.no>
Date: 1997/04/19
Subject: Re: Ousterhout and Tcl lost the plot with latest paper

* James Logajan
| NOTE TO LISP AND FORTH FANS: one important reason your languages have
| never caught on may be due to the fact that many natural languages follow
| the "subject verb object" form.  Usage of SOV, OSV, VSO, and VOS are less
| likely (I don't have any references in front of me; if anybody wants
| details, I'll try to locate what I have).  They also lack visual
| redundancy (they aren't alone in this short-coming of course).

I hope you find studies of human factors with _experienced_ users.  the
results coming from the ever-present inexperienced users has no validity
for more than inexperienced users, yet get touted as truths about the
languages.  this tends to annoy people who believe that "experience" is a
valid concept in any discipline.

for some reason, we don't see open heart surgery defamed by "research" into
how inexperienced users with a scalpel and an attitude kill people and that
it should therefore be a discommended practice.

many a Lisp programmer will testify that he thinks in Lisp and reads Lisp
code with _less_ "stack depth" and "cognitive load" than is needed for the
many other languages he knows.  e.g., I find C to be _much_ harder to read
than Lisp because I need to scan forward in hairy expressions a lot to know
how things work together, and to scan backwards for type information.  I
also have to work to remember operator precedence rules in the language.
in Lisp, I may have to scan back and upwards, but I've already been there
when I'm reading the code.  in C++, I need to keep in mind the classes of
all the variables so I can have a glimmer of hope of understanding _which_
function is being called.  the foo in x.foo is not the foo in y.foo, unless
the class of x and the class of y relate such that they are.  in CLOS, (foo
x) and (foo y) is the same generic function with different specializers and
a Lisp programmer is _much_ less likely to implement widely different
semantics with the same name than is a C++ programmer who is "alone" in his
class (hierarchy).

there should be a measure of "mental clutter" that each language leaves
with its (moderate to excellent) programmers.

somebody should tell those Subject-Verb-Object guys from the wrong
department that it is quite uncommon to nest sentences and expressions the
way it is done in programming languages, lest this invalid argument should
keep coming back from the argument grave yard yet again.  for some reason,
C/C++ programmers can't handle very deep nesting, while Lisp people can.
my take on this is that C/C++ already "use up" quite a number of "stack
levels" with its complex syntax, while Lisp does not, and can use those
"stack levels" for real work.

back in high school, I was reprimanded by my teachers for using too long
sentences and too complex sentence structure.  (my editors have said the
same.)  I found the rules they laid down for me to follow to be extremely
crippling in expressive power.  write short sentences.  use only simple
conjunctions.  don't use the passive voice.  the active voice helps
"involve" people.  this all gives me the creeps.  subject verb object.  I
just don't think that way.  I think of my sentences as evaluation of nested
expressions that yield intermediate values used by other parts of the
sentence and which conclude in communicating some meaning.  the paragraph
is similarly constructed to carry those sentence-values forward into a
concluding sentence.  this process _precludes_ the use of stunted forms and
the imperative, active style for me.  then again, I don't write children's
books or "Crotch Sniffing for Dummies".

and last time I checked, I was still human, despite all this bogus research
into human factors that pretends I and people like me don't exist.

#\Erik
--
I'm no longer young enough to know everything.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Paul Wilson  
View profile  
 More options Apr 19 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: wil...@cs.utexas.edu (Paul Wilson)
Date: 1997/04/19
Subject: Re: Ousterhout and Tcl lost the plot with latest paper

In article <jameslE8uvL5....@netcom.com>,

James Logajan <jam...@netcom.com> wrote:
>Ken Tilton (t...@bway.net) wrote:
>: Pragmatics have no place in a theological debate or language flame war.
>: They might blow out the fire. <g>

There is a difference between theories and theology, though either is often
easy to mistake for the other.

>: We're comparing languages, so I suggest we fight to the death over (or
>: until we agree upon) The One Best Language for Everything <g>.

I don't think many poeple here believe there is One Best Language for
Everything.  There are, however, languages that are good for more things
than others.  (Say Pascal vs. Modula-2, to pick a similar-but-different
pair.)

>: I suggest Lisp. Any counter-offers must include full dynamism,
>: introspection, procedural macros, lexically-scoped closures and generic
>: functions and must not include static typing. You know, Lisp. <g>

I like all of those features myself, but let's not get greedy.  :-)
(And by the way, generic functions are not part of Lisp per se, they're
part of Common Lisp with CLOS and some other languages that adopted
the idea, including some OOP languages.)

I suggest talking about which features are crucial and work well
together, so we can swipe the best features of various languages
and combine them into a coherent whole, rather than just kludging
scripting languages together.

There's too much of a religious/propagandistic tendency for people
to either say "A tool for each job", or to say "one tool for every
job," rather than talking about "a handy combination of a few
tools."  This just leads to misunderstanding and flame wars.
I for one, have never said that Scheme is the ideal scripting
language.  I know it's not. However, I do think some of the core
ideas of Scheme are very useful and would work well in that
setting.  I also think something like Self might be a good
start, and it's a very different language.

I also think that Tcl has some good stuff in it.  What I'm trying to
figure out is which features are due to simple lack of knowledge
of the alternatives, and which say something fairly deep about
how a scripting language should be designed.

>I represent a rabble of one that takes no prisoners! Counterthrust:
>where the bleep is human-factors in this never-ending thread? Anybody
>care to actually reference what little research has been done in this
>area?

Not the research I know about.  It's mostly baby-stuff because the
main issues are hard to conduct good, controlled experiments about.
(The results about how many characters of indenting are more readable
come to mind as some of the *better* research, though the studies weren't
thorough enough in several ways.   Beyond that, you tend to get
experiments that *seem* to say something basic, but it's not clear how
to apply it to the richer context of real programming in real languages,
or stuff that's so simplistic it's more likely wrong than right.
Counterexamples very welcome.)

>I couldn't help but notice that the Ousterhout white paper had only one
>reference to one measly result of human factors research; and it came
>from a secondary source. I believe that ALL the designers of ALL the languages
>this thread is cross-posted to (and many that aren't) didn't even attempt
>to study software psychology (or psycholinguistics).

I don't know if that's true of the designers of the popular languages.
I know it's not true of all of the readers of this thread.  (I for one,
worked in HCI for a while, and studied psychology, some linguistics, and
philosophy of psychology in grad school.  Of course, that doesn't make
me any kind of authority, though.)

I'm just saying that some of us are aware of some of the research, but it
tends to be hard to interpret for a realistic context.  Little studies
tend to be wildly unrealistic and test absolute beginners' skills, and
big ones tend to be hard to interpret because there are too many
uncontrolled variables.  For this stuff to be done well, there should
be lots of studies at various granularities, which will inevitably
support quite a few conflicting conclusions.  Only then will people
get a better idea of which questions to ask, to show *why* some
things turn out one way, and other work out in other wasy.  That's the
way work in psychology tends to go, because it's an intrinsically
difficult, multi-leveled subject.

>NOTE TO LISP AND FORTH FANS: one important reason your languages
>have never caught on may be due to the fact that many natural languages
>follow the "subject verb object" form. Usage of SOV, OSV, VSO, and VOS
>are less likely (I don't have any references in front of me; if anybody
>wants details, I'll try to locate what I have).

I think this is mostly a red herring, but maybe not entirely.  First,
different natural languages tend to vary wildly in the orderings
of terms.  Consider French and Spanish postfix adjectives vs.
English prefix adjectives.  Which is better?  Hard to say.  And look
at basic sentence structure in English.  Often we force things into
our "normal" syntax when it makes no particular semantic sense, and
end up with funny constructions that confuse non-native speakers.

With respect to SVO structure, I think there's a good argument that
VSO is more natural for English speakers because in programming
languages we're often writing imperative sentences, e.g.,
"Put [ the ] cat [ on the ] mat" is more familiar than
"Cat put [yourself] on [the mat}".

The latter makes some sense in Smalltalk, where it's assumed there's
a privileged receiver of the message, and that we really are telling
the cat to put itself on the mat.  But some things don't fall
gracefully into that framework, which is why some OO languages now
have generic functions (or multimethods, which is essentially the
OOP term for the same thing).  Often method selection depends
on more than one argument, because the "sentence" has more than one
"object".  (If your language doesn't support that concept, you may
have to kludge it.)

The difference isn't usually crucial, because putting the action
(or function name) first often tips you off to facts about the
arguments.  e.g., if I say add(a,b) or (in Lisp syntax)
(+ a b), once you see the operator you can guess that the operands
are things it makes sense to add.

A major difference between computer

>They also lack visual
>redundancy (they aren't alone in this short-coming of course).

I think this problem is largely due to bad teaching. (Especially
in programming language courses where neither the teacher nor
the writer of the textbook understands Lisp/Scheme style.)  The
visual redundancy in Lisp and Scheme comes largely from the indenting,
so you really have to teach/learn good indenting to be able to
read the code visually.  Indenting is important anyway, in
any language, so it should be taught regardless, but it's
crucial in Lisp/Scheme, so learners need to know the rules
and know what they signify.

On the other hand, I do allow that Lisp and Scheme have
fewer visual irregularities than other languages.  I'd like
to point out, though, that this is largely a choice by
Lispers and Schemers.  You could build a language based on
Lisp/Scheme technology with a more conventional syntax,
and more redundant keywords.  For example, it's trivial
to redefine if so that instead of writing

     (if (< a b)
         a
         b)

you could write

     (if (< a b)
         a
      else
         b)

Note that in Scheme we don't have to write returns, because everything's
an expression.  We don't have to use returns to return a value.  So
where in a C-influenced language like Java or Tcl we might write
something like

     proc min(a, b)
     {
        if (a < b)
           return a;
        else
           return b;
     }

In Scheme we'd write

     (define (min a b)
        (if (< a b)
            a
            b))

If you wanted a more conventional syntax, you could add infix
operators as well as extra keywords, and make it look pretty much
like C or Tcl.  (If we really want terseness, we can use a C-like
ternary operator instead of if.  In a Scheme-like language if
works just like the ternary operator AND if, because everything
is an expression that returns a value, but which may have side
effects.)

Common Lisp and many Schemes also have keyword arguments, too, as
was shown earlier in this thread by translating Ousterhout's
Tcl/Tk example into Common Lisp.  So if you want more redundancy
and terseness within a basically Lisp-like framework, you can
easily get it.

By slapping a conventional-syntax parser on Scheme, and changing
a few keywords, you can get a version of Scheme with a syntax like
this:

    proc min(a, b)
    {
       if (a < b)
       then a;
       else b;
    }

or this:

    proc min(a, b)
      (a < b) ? a : b;

depending on how much of a terseness fanatic you are.

--
| Paul R. Wilson, Comp. Sci. Dept., U of Texas @ Austin (wil...@cs.utexas.edu)
| Papers on memory allocators, garbage collection, memory hierarchies,
| persistence and  Scheme interpreters and compilers available via ftp from
| ftp.cs.utexas.edu, in pub/garbage (or http://www.cs.utexas.edu/users/wilson/)      


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Paul Wilson  
View profile  
 More options Apr 19 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: wil...@cs.utexas.edu (Paul Wilson)
Date: 1997/04/19
Subject: Re: Ousterhout and Tcl lost the plot with latest paper

In article <wbybagw59h....@peanut.jpl.nasa.gov>,

This is understandable.  How to you feel about scripting languages
that have a more C-like syntax, so that you'd write

     func(arg1, arg2)

except when emitting a command to the operating system?

(I'd think that for tiny programs which mostly communicate with the UNIX
shell, the shell-like syntax might be preferable, but for non-tiny
scripts which mostly invoke other scripts, you'd want a more familiar
programming-language-like notation. (The called scripts which may be
written in a foreign language, but not require a call out to the OS to
start a new process).

>I also prefer

>        if {$x < 3} {
>             foo arg1 arg2
>        } else {
>             bar arg3 arg4
>        }

>to something like

>        (if (< x 3)
>         (foo arg1 arg2)
>         (bar arg3 arg4))

Disregarding the parenthesis issue and the infix vs. prefix issue
(which can be solved with a simple parser on top of something like
Scheme), how do you feal about the $x substitution thing?

Would you rather be able to write something like

          if (x < 3)
            foo(arg1,arg2)
          else
            foo(arg3,arg4);

(maybe without the commas, but where you don't have to remember to
force the evaluation of x in the condition?)

>I confess, though I've toyed with Lisp and Scheme in the past, I'm
>primarily a C programmer.  Most of the people I work with are C
>or C++ programmers.  The Tcl version gives us warm fuzzies, and
>the Scheme version doesn't.

Understandable.  Familiarity can be significant, especially in
the beginning.  (Personally, I found Tcl and Perl's evaluation
rules mystifying in the beginning.)

>I did a web search yesterday, and found a couple of Scheme
>implementations which would probably work as well for my purposes as
>Tcl, except for the psychological issues I mention.  If I were
>starting over, though, I'd still pick Tcl.  

Is this because you like programming in a shell style (e.g., don't
mind having to force evaluation by controlling substitution) or
because Scheme syntax is unfamiliar in other ways?

>It's plenty good enough,
>and it "feels" better to me.  Frankly, that's what's important.

That's understandable, too.  What I'm trying to figure out is which issues
are the most important in overcoming resistance to things like Scheme
and Smalltalk.

--
| Paul R. Wilson, Comp. Sci. Dept., U of Texas @ Austin (wil...@cs.utexas.edu)
| Papers on memory allocators, garbage collection, memory hierarchies,
| persistence and  Scheme interpreters and compilers available via ftp from
| ftp.cs.utexas.edu, in pub/garbage (or http://www.cs.utexas.edu/users/wilson/)      


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Cyber Surfer  
View profile  
 More options Apr 19 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel, comp.lang.rexx
From: cyber_sur...@gubbish.wildcard.demon.co.uk (Cyber Surfer)
Date: 1997/04/19
Subject: Re: Ousterhout and Tcl lost the plot with latest paper

With a mighty <19970418.79D47D0.8...@contessa.phone.net>,
bouncen...@contessa.phone.net uttered these wise words...

> Unfortunately, there are people using lesser platforms that don't have
> or only recently acquired these facilities, so they can't do that. :-)

That's exactly my point. If MS can do it, so can lots of other
presumably more talented people. Am I the only one who thinks that
this will be a big win? Actually, I think that's an understatement.
I'm predicting that it'll be a _massive_ win.

> And some people just like arguing about religious issues.

Alas. No wonder MS get ahead - they steamroller along, ignoring the
religious issues, and just _do it_. No wonder so many people feel a
need to slag them off. I'm one of them, BTW, so I'm criticising
myself! Was this what Richard P. Gabriel's "Lisp: Good News Bad News
How to Win Big" was about? Well, he didn't mention MS, but I guess
they're way of doing things is closer to "MIT" than "NJ".
<URL:http://www.ai.mit.edu/articles/good-news/good-news.html>

> > I don't see why MS and Windows developers - and users - should be the
> > only people to benefit from this fine idea.

> They aren't. Like I said, I (and a few million others) have had the
> benefit of this functionality for most of the last decade.

Has Guile been around for that long?

> It appears that Unix may get such a solution in the form of
> applications that support JVM as a scripting mechanism. This allows
> any language that can be used to produce JVM bytecodes to be used for
> scripting. There may be technical problems with this solution, but
> it's a start.

<sigh> Yet Another Language Specific Solution. Please note that
Activex isn't dependant on a single language. You don't have to use
JavaScript to appreciate ActiveX. It'll work with _any_ language
that's available as an ActiveX script engine.

I'm sure that something similar _could_ be done for Unix, but I've not
yet heard of it. Guile is close, but no cigar. Of course, if nobody
complains about using Scheme as the "VM", then there's no problem.

However, ActiveX Scripting doesn't use a VM. That could be a big
limitation, but the only working (note: I didn't say "workable")
alternative right now is the JVM, which apparently has a few
disadvantages for some languages. ActiveX Scripting doesn't suffer
like this, altho it is (currently) dependant on Wintel. The ideas
could be a lot more portable than the technology itself, which is why
I wonder if something similar could be done for other platforms.

Think it as introspection. ActiveX Scripting adds enough introspection
to allow the scripting language to be completely decoupled from the
app that uses it. That gives the developer and the user a lot of of
leaverage, and without sacrificing any performance, nor leaving any
room for language politics to get in the way of using it. Neither
Guile nor the JVM have that advantage, but perhaps this can change.

Meanwhile, MS steamroller ahead. Who can blame them? They set a goal,
they achieve it, and everyone else eats their dust. In the case of
Bill Gates' "Basic for scripting everywhere", I think that it took 10
something like years or more to achieve, but now it's here. It would
be naive to pretend that people won't exploit it, or that it won't big
a big win. It's such a simple idea, so only the "not invented here"
attitude can stop anyone else from using it.

Unfortunately, that's been an effective block to progress for many
years. (Who remembers ACE?) If technical superiority really does
count, then please forget the political crap and just _do it_. You can
argue all you like about which language is "best" _after_ you've saved
the world...

> If you're really interested, I started working on a TCP/IP solution
> for this kind of thing a while back. It got aborted by a corporate
> takeover, but I may still have the groundwork somewhere (if not, the
> critical parts are easy to recreate).

Good luck.
--
<URL:http://www.wildcard.demon.co.uk/> You can never browse enough
  Martin Rodgers | Programmer and Information Broker | London, UK
            Please note: my email address is gubbish.

 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Ousterhout's paper: well worth reading." by Paul Wilson
Paul Wilson  
View profile  
 More options Apr 19 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: wil...@cs.utexas.edu (Paul Wilson)
Date: 1997/04/19
Subject: Re: Ousterhout's paper: well worth reading.

In article <3368a3ac.3086...@news.sydney.apana.org.au>,

 <r...@gco.apana.org.au> wrote:

>{ courtesy copy emailed to ous...@tcl.eng.sun.com , jo...@cnet.com}
>-------------------------------------------------------------------------- -------------------------------
>Someone who claimed to be John Shen <jo...@cnet.com> wrote:
>>Dear Professor O,
>> Please get back to doing your good work and gently ignore them.
>>I must say that your paper (which undoubtedly can be improved in many
>>ways) truly has had an enormous impact on all the programmers/project
>>leaders as I have not seen that much discussions on any other topic
>>recently in so many programming groups.  

>I personally was favorably affected by Prof O's paper.
>Sure, it may not be a literary or a CS masterpiece, but it certainly
>provided food for thought.

Tastes vary.  Many of us already knew the almost all of the stuff in the
whitepaper, had questions about them, and were left unsatisfied, or
even with a bad taste in their mouths.

Ousterhout's notion of "scripting" vs. "systems" programming is a
very limitied view, and many of us think it's not right---there
can be languages that can be good for both "systems" and "applications"
programs, and there are languages that can be good for both "applications"
and "systems" programming.  Unfortunately, the split that Ousterhout
has chosen just happens to be the one that makes Tcl look best.

It's also the one that appeals to C programmers, who are sick to
death of using a systems programming language as an applications
programming language.  Mightn't it be better to use a convenient,
interactive language most of the time, and only write the most
time-critical or system-dependent code in C?

It's interesting that many Tcl programmers are using Tcl as one could
Lisp or Smalltalk.  They're not hitting themselves in the head with a
big rock (C development style) as often as they used to.  Instead
they're hitting themselves with a smaller rock (Tcl's limitations)
most of the time.  In some sense, Lisp has won, after being shunned
by macho C programmers for so long.  ("We don't need no steenking
command-loop, we've got compilers!  And we write FAST code!")

Often the reason that Tcl seems like the right language for the job,
even one it's not designed for, is just that C is the wrong language
for the job.  

>>Languages like
>>Perl and Tcl (well, I cannot help putting Perl ahead of Tcl :-) have
>>been looked down upon by some as tools to craft quick-and-dirty
>>solutions, yet their successes in mission-critical projects
>>contradicts such views (actually they can be used for the full
>>spectrum from q&d to enterprise-level applications, which is the
>>beauty of it all).  

As I've said before, languages like Tcl should in fact embarrass the
academic programming languages community, which has generally had
tunnel vision with respect to gluing.

>His clear accounts of the gluing vs systems programming paradigms
>were "worth the price of admission ".

I think that the general idea has some truth to it, but Ousterhout
presents it in such a way that it misleads many of his readers.
Mostly by omission, he makes it sound as though the design of Tcl
followed rationally from the problem domain, which many knowledgeable
people doubt.  Some of the language features are obviously a good
idea, but the guts of the language seem poorly motivated.

I, for one, had hoped we could get to a point where we'd talk about
design choices in programming languages, and how they'd interact,
rather than just flaming back and forth about whose language was
better.

>Perhaps he didn't mention your or my currently favorite languages, (
>eg: Perl in your case, Python in mine ) but that was not the point of
>the paper.

No, it wasn't, but he also didn't mention programming language design
alternatives, such as lexical scope, conventional dynamic typing,
closures, objects, and garbage collection.  People have been doing
scripting of some sort in languages with various combinations
of those features for a very long time.  Are they irrelevant?

By neglecting to mention language *ideas* that are relevant, as
well as seminal languages, and by strongly pushing a false dichotomy,
Ousterhout wrote a paper that sounded to some people like more biased
marketing hype rather than interesting discussion of important issues.

If Ousterhout had taken the line that "Tcl is a warty, limited
language, but it has momentum so let's go with it," fewer people
would have objected.  But by what he stresses, and omission, he
makes Tcl sound better than it is, and like it has not only
momentum but righteousness.  He stakes out the ground of a good
language designer who's invented a New Kind of Language.

>Read, learn and move on....

Exactly.  But to learn what's important, you have to understand
basic things, so that you can compare them properly, and know
what lessons to take with you.

I'm a language designer, and I don't know what to make of Tcl.
I think Ousterhout's a very smart guy, and I have immense respect
for much of his work in other areas.  When it comes to Tcl,
though, I often can't distinguish between his technical smarts
and his marketing smarts.  I don't know what to learn from Tcl
other than that "Tk and glue are real handy."  

Arguments from popularity and size of extant programs can have
some merit, but remember that there are programs in COBOL that are
millions of lines long, and that well after UNIX became fairly
popular, MS-DOS was by far the most popular OS in the world.
None of that convinces me that COBOL and MS-DOS are Good Things.
The fact that it's possible to use something for a nontrivial
task doesn't make it a good idea.  The fact that many people do so
doesn't make it a good idea, either.

Simple personal testimonials don't quite cut it---unless there is a
description of the advantages of that tool, and *how* the tool works
well when you'd think it'd be lacking a crucial feature.  An argument
like "we don't need no steenking records, because I wrote 100,000
lines of Tcl and it worked!"  The same goes for millions of lines of
COBOL and FORTRAN, and IBM 360 assembler.  Unless we're told how
it was done, and why doing it that way is better than doing it some
seemingly better way, we don't know how to learn from it.
--
| Paul R. Wilson, Comp. Sci. Dept., U of Texas @ Austin (wil...@cs.utexas.edu)
| Papers on memory allocators, garbage collection, memory hierarchies,
| persistence and  Scheme interpreters and compilers available via ftp from
| ftp.cs.utexas.edu, in pub/garbage (or http://www.cs.utexas.edu/users/wilson/)      


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Ousterhout and Tcl lost the plot with latest paper" by Cyber Surfer
Cyber Surfer  
View profile  
 More options Apr 19 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel, comp.lang.rexx
Followup-To: comp.lang.lisp
From: cyber_sur...@gubbish.wildcard.demon.co.uk (Cyber Surfer)
Date: 1997/04/19
Subject: Re: Ousterhout and Tcl lost the plot with latest paper

With a mighty <kig912fjgfs....@jagor.srce.hr>,
hnik...@srce.hr uttered these wise words...

> I don't know about you, but I certainly don't recognize MS here.

Oops, I meant to say that they're closer to the "NJ" camp. Thanks for
pointing out my (obvious) error. It's one of those boolean "off by
one" errors...

I guess my intended meaning wasn't clear enough. Sorry for the
confusion. I've untrimmed the newsgroups list, so that my correction
will reach anyone who read the article that we're refering to.
Followups are set to comp.lang.lisp.

Many thanks.
--
<URL:http://www.wildcard.demon.co.uk/> You can never browse enough
  Martin Rodgers | Programmer and Information Broker | London, UK
            Please note: my email address is gubbish.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Reply to Ousterhout's reply (was Re: Ousterhout and Tcl ...)" by Alaric B. Williams
Alaric B. Williams  
View profile  
 More options Apr 19 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: ala...@abwillms.demon.co.uk (Alaric B. Williams)
Date: 1997/04/19
Subject: Re: Reply to Ousterhout's reply (was Re: Ousterhout and Tcl ...)

On 18 Apr 1997 19:34:38 GMT, c...@cs.umd.edu (Charles Lin) wrote:

>     The argument I've read is (1) numbers can be used to represent
>any other (countable) type through Godel enumeration, and (2) computers
>use numbers to represent things underneath.   The challenge is this.
>You are to write a language for users to use.   I give you one type
>that you will give to the user to use.   Would your users prefer
>strings or numbers?    I'm not talking about internal representation.
>Do I think everything should be strings in a language.  Personally,
>no, but given the above, how would you have answered it?

Actually, I think they'd prefer audio samples instead of either...

"Let X equal Y plus one, write X to the screen, then for every element
E of list B, write E to the screen, end loop."

ABW
--
"Plug and Play support: WfEWAD will autodetect any installed
Nuclear Arsenals, Laser Satellites, Battlefield Control Networks,
Radar Installations, Fighter Squadrons, and other WfEWAD compliant
devices, including the new Macrosoft Unnatural Keyboard, with
full support for the now-famous Big Red Buttom(tm)."

(Windows for Early Warning and Defence User's manual P26)

Alaric B. Williams Internet : ala...@abwillms.demon.co.uk
<A HREF="http://www.abwillms.demon.co.uk/">Hello :-)</A>


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Lisp is neither (was Re: Ousterhout and Tcl lost the plot)" by John Ousterhout
John Ousterhout  
View profile  
 More options Apr 19 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: ous...@tcl.eng.sun.com (John Ousterhout)
Date: 1997/04/19
Subject: Lisp is neither (was Re: Ousterhout and Tcl lost the plot)

One of the most common criticisms of my white paper has been that the
distinction between scripting and system programming is artificial, and
that it is possible for a single language to be good at both tasks.
Lisp-like languages such as Scheme were suggested as living proof.  I
can't prove that it's impossible for a single language to be good at
both scripting and system programming, but I don't know of a good example
and I doubt that it will ever happen.  The reason for this is the
difference in typing, as I explained in the white paper. A given language
embodies a particular style of typing, which can range from very strongly
typed to totally untyped.  Once that decision has been made, the language's
position on the spectrum between system programming and scripting is set.
I think it's possible to have a language that's in the middle, but it's
not likely to be terrific at either task.

Let's take Lisp as an example.  I think that Lisp falls somewhere
between scripting and system programming.  Many of you have suggested that
it is an ideal language for both system programming and scripting, but I
think that it isn't really very good for either.  In fact I suspect that
this may be why Lisp hasn't been used much for practical programming.
Lisp isn't a good system programming language because it's too hard to
write efficient programs in it and it doesn't provide good low-level
access to machine facilities.  On the other hand, Lisp isn't good for
scripting either.  In order to be a good scripting language, you need
to be able to interoperate with lots of other things, which are often
written in other languages (the best glues are those that stick to lots
of different materials).  But Lisp has never been very good at this.
For example, it's hard to include C code with Lisp because they have
very different data types and memory models.  Lisp systems are typically
closed: you have to live entirely in the Lisp world.  Good scripting
languages are open and friendly: they talk to and work with everything.

Just to short-circuit the discussion that will ensue...

I'm sure that many of you will argue against these claims ("my new
version of Scheme is just as fast as C", "Lisp just needs a new garbage
collector that embodies the latest techniques", "I know someone who
combined C with Scheme and had no problems at all", etc.).  However,
I've seen a fair amount of evidence on this and the problems far
outnumber the success stories.  Many of the best minds in Computer
Science have worked on Lisp over the last 30 years, and they haven't
been able to fix the language so that it could be widely used either
for system programming or scripting tasks.  This says to me that there
is something fundamentally wrong with the language, at least for these
tasks.

By the way, I think that Lisp is a fascinating language with neat
mathematical properties.  It's great for a variety of meta-programming
tasks where you're experimenting with new programming paradigms, such as AI
and language theory.  It just isn't good for system programming or scripting.
This reinforces my claim that you should use different tools for different
tasks.  This is also why I didn't mention Lisp in the paper.  The things I
discussed in the white paper aren't the things that Lisp was designed for
or that it does best, so it isn't really fair to compare Lisp along those
dimensions.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Naggum  
View profile  
 More options Apr 19 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: Erik Naggum <e...@naggum.no>
Date: 1997/04/19
Subject: Re: Lisp is neither (was Re: Ousterhout and Tcl lost the plot)

* John Ousterhout
| The reason for this is the difference in typing, as I explained in the
| white paper.  A given language embodies a particular style of typing,
| which can range from very strongly typed to totally untyped.

I get the impression that John Ousterhout does not understand what "dynamic
typing" means.  "untyped" is recurring in his articles and his paper.
apparently, the concept that an object has type information, not the
variable that holds it, is hard to grasp for many programmers in the C
tradition.  yet, unions with type tags are common.  now, of course, a C
programmer would shudder at the very idea of using a union with a type tag,
so let's just say that this is well optimized in Lisp implementations,
often with support from the hardware.  (yes, CPU's _do_ have instructions
that C compilers don't use.)

| Let's take Lisp as an example.  I think that Lisp falls somewhere between
| scripting and system programming.  Many of you have suggested that it is
| an ideal language for both system programming and scripting, but I think
| that it isn't really very good for either.  In fact I suspect that this
| may be why Lisp hasn't been used much for practical programming.

there are many reasons why Lisp has not become popular.  they have all been
hashed out quite extensively over the years.  yours is totally new.  it is
safe to say that with the criticism presented to you that your distinction
between scripting and systems programming language is artificial, the fact
that you're the first to find this reason for Lisp's lack of use is
actually an argument _against_ your (artificial) distinction.  or proof of
incredibly sloppy thinking on your part.  perhaps both.

| Lisp isn't a good system programming language because it's too hard to
| write efficient programs in it and it doesn't provide good low-level
| access to machine facilities.

I have criticized the use of "Lisp per se" in comp.lang.lisp, as it seems
that "Lisp" means some sort of proto-Lisp to many people, including you.
since there is no such language, any discussion of Lisp that fails to be
precise in which Lisp it discusses is literally devoid of meaning.  that
you draw wide-ranging conclusions about an unspecific language is perhaps
significant, perhaps not.  in either case, it is disconcerting that you
don't bother to be specific.

| For example, it's hard to include C code with Lisp because they have very
| different data types and memory models.

this is getting quite amusing...

| Just to short-circuit the discussion that will ensue...
|
| I'm sure that many of you will argue against these claims ("my new
| version of Scheme is just as fast as C", "Lisp just needs a new garbage
| collector that embodies the latest techniques", "I know someone who
| combined C with Scheme and had no problems at all", etc.).

this is the most ignorant nonsense I have ever seen anyone who pretends to
be serious has ever written!  if this is the best John Ousterhout can do
when he researches something, there's no _wonder_ Tcl is the way it is!

have you even _seen_ a Common Lisp compiler, John Ousterhout?

| However, I've seen a fair amount of evidence on this and the problems far
| outnumber the success stories.

why should anyone trust you on that?

| Many of the best minds in Computer Science have worked on Lisp over the
| last 30 years, and they haven't been able to fix the language so that it
| could be widely used either for system programming or scripting tasks.
| This says to me that there is something fundamentally wrong with the
| language, at least for these tasks.

the saddest, but still quite amusing, part of this ranting is that you rely
on the reader's acceptance of "widely used" to justify your arguments, yet
have made no distinction between, e.g., Bill Gates' beloved BASIC and Tcl.
Tcl is clearly a phenomenal failure compared to BASIC.  how can you have
the _gall_ to argue that Tcl is widely used and that Lisp is not if you
don't even consider "widely used" relative to their "markets"?

| By the way, I think that Lisp is a fascinating language with neat
| mathematical properties.  It's great for a variety of meta-programming
| tasks where you're experimenting with new programming paradigms, such as
| AI and language theory.  It just isn't good for system programming or
| scripting.  This reinforces my claim that you should use different tools
| for different tasks.  This is also why I didn't mention Lisp in the
| paper.  The things I discussed in the white paper aren't the things that
| Lisp was designed for or that it does best, so it isn't really fair to
| compare Lisp along those dimensions.

again, why should anyone trust your judgment on this?  you are clearly
unable to recognize the simple fact that you don't know Lisp in practice
well enough to pass judgment on it.  yet you make a big stink about
evidence and lots of important words that carry no _precise_ meaning.

ANSI Common Lisp, and even Common Lisp the Language, 2nd edition, specify a
language that is, in practice, _routinely_ compiled to code as fast as C,
often faster because Common Lisp programmers use better algorithms and have
more time to optimize where it is needed than C programmers.

it's _tragic_ to see that John Ousterhout is this affected by myths and
general ignorance, and doesn't even know he's out on a limb.

after what I have read from John Ousterhout, I have reached the sad
conclusion that he is intellectually dishonest and does not know when he no
longer has sufficient information to state a conclusion and when he must be
humble enough to request more information before he can do so.  a highly
acclaimed academic should not be _able_ to lose this ability just because
he's working for a company.

Richard Gabriel's "worse is better" may even apply to people in some ways.

#\Erik
--
I'm no longer young enough to know everything.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Erik Naggum  
View profile  
 More options Apr 19 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: Erik Naggum <e...@naggum.no>
Date: 1997/04/19
Subject: Re: Lisp is neither (was Re: Ousterhout and Tcl lost the plot)

* John Ousterhout
| The reason for this is the difference in typing, as I explained in the
| white paper.  A given language embodies a particular style of typing,
| which can range from very strongly typed to totally untyped.

I get the impression that John Ousterhout does not understand what "dynamic
typing" means.  "untyped" is recurring in his articles and his paper.
apparently, the concept that an object has type information, not the
variable that holds it, is hard to grasp for many programmers in the C
tradition.  yet, unions with type tags are common.  now, of course, a C
programmer would shudder at the very idea of using a union with a type tag,
so let's just say that this is well optimized in Lisp implementations,
often with support from the hardware.  (yes, CPU's _do_ have instructions
that C compilers don't use.)

| Let's take Lisp as an example.  I think that Lisp falls somewhere between
| scripting and system programming.  Many of you have suggested that it is
| an ideal language for both system programming and scripting, but I think
| that it isn't really very good for either.  In fact I suspect that this
| may be why Lisp hasn't been used much for practical programming.

there are many reasons why Lisp has not become popular.  they have all been
hashed out quite extensively over the years.  yours is totally new.  it is
safe to say that with the criticism presented to you that your distinction
between scripting and systems programming language is artificial, the fact
that you're the first to find this reason for Lisp's lack of use is
actually an argument _against_ your (artificial) distinction.  or proof of
incredibly sloppy thinking on your part.  perhaps both.

| Lisp isn't a good system programming language because it's too hard to
| write efficient programs in it and it doesn't provide good low-level
| access to machine facilities.

I have criticized the use of "Lisp per se" in comp.lang.lisp, as it seems
that "Lisp" means some sort of proto-Lisp to many people, including you.
since there is no such language, any discussion of Lisp that fails to be
precise in which Lisp it discusses is literally devoid of meaning.  that
you draw wide-ranging conclusions about an unspecific language is perhaps
significant, perhaps not.  in either case, it is disconcerting that you
don't bother to be specific.

| For example, it's hard to include C code with Lisp because they have very
| different data types and memory models.

this is getting quite amusing...

| Just to short-circuit the discussion that will ensue...
|
| I'm sure that many of you will argue against these claims ("my new
| version of Scheme is just as fast as C", "Lisp just needs a new garbage
| collector that embodies the latest techniques", "I know someone who
| combined C with Scheme and had no problems at all", etc.).

this is the most ignorant nonsense I have ever seen anyone who pretends to
be serious has ever written!  if this is the best John Ousterhout can do
when he researches something, there's no _wonder_ Tcl is the way it is!

have you even _seen_ a Common Lisp compiler, John Ousterhout?

| However, I've seen a fair amount of evidence on this and the problems far
| outnumber the success stories.

why should anyone trust you on that?

| Many of the best minds in Computer Science have worked on Lisp over the
| last 30 years, and they haven't been able to fix the language so that it
| could be widely used either for system programming or scripting tasks.
| This says to me that there is something fundamentally wrong with the
| language, at least for these tasks.

the saddest, but still quite amusing, part of this ranting is that you rely
on the reader's acceptance of "widely used" to justify your arguments, yet
have made no distinction between, e.g., Bill Gates' beloved BASIC and Tcl.
Tcl is clearly a phenomenal failure compared to BASIC.  how can you have
the _gall_ to argue that Tcl is widely used and that Lisp is not if you
don't even consider "widely used" relative to their "markets"?

| By the way, I think that Lisp is a fascinating language with neat
| mathematical properties.  It's great for a variety of meta-programming
| tasks where you're experimenting with new programming paradigms, such as
| AI and language theory.  It just isn't good for system programming or
| scripting.  This reinforces my claim that you should use different tools
| for different tasks.  This is also why I didn't mention Lisp in the
| paper.  The things I discussed in the white paper aren't the things that
| Lisp was designed for or that it does best, so it isn't really fair to
| compare Lisp along those dimensions.

again, why should anyone trust your judgment on this?  you are clearly
unable to recognize the simple fact that you don't know Lisp in practice
well enough to pass judgment on it.  yet you make a big stink about
evidence and lots of important words that carry no _precise_ meaning.

ANSI Common Lisp, and even Common Lisp the Language, 2nd edition, specify a
language that is, in practice, _routinely_ compiled to code as fast as C,
often faster because Common Lisp programmers use better algorithms and have
more time to optimize where it is needed than C programmers.

it's _tragic_ to see that John Ousterhout is this affected by myths and
general ignorance, and doesn't even know he's out on a limb.

after what I have read from John Ousterhout, I have reached the sad
conclusion that he is intellectually dishonest and does not know when he no
longer has sufficient information to state a conclusion and when he must be
humble enough to request more information before he can do so.  a highly
acclaimed academic should not be _able_ to lose this ability just because
he's working for a company.

Richard Gabriel's "worse is better" may even apply to people in some ways.

#\Erik
--
I'm no longer young enough to know everything.


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Discussion subject changed to "Ousterhout and Tcl lost the plot with latest paper" by Brian Rogoff
Brian Rogoff  
View profile  
 More options Apr 19 1997, 3:00 am
Newsgroups: comp.lang.scheme, comp.lang.scheme.scsh, comp.lang.lisp, comp.lang.tcl, comp.lang.functional, comp.lang.c++, comp.lang.perl.misc, comp.lang.python, comp.lang.eiffel
From: Brian Rogoff <b...@best.com>
Date: 1997/04/19
Subject: Re: Ousterhout and Tcl lost the plot with latest paper

On Fri, 18 Apr 1997, James Logajan wrote:

> NOTE TO LISP AND FORTH FANS: one important reason your languages
> have never caught on may be due to the fact that many natural languages
> follow the "subject verb object" form. Usage of SOV, OSV, VSO, and VOS
> are less likely (I don't have any references in front of me; if anybody
> wants details, I'll try to locate what I have). They also lack visual
> redundancy (they aren't alone in this short-coming of course).

Best quote on this topic I've read lately

        The use of the Chomsky formalism is also responsible for the term
        "programming language", because programming languages seemed to
        exhibit a strucure similar to spoken languages. We believe that
        this term is rather unfortunate on the whole, because a programming
        language is not spoken, and therefore is not a language in the true
        sense of the word. Formalism or formal notation would have been
        more appropriate terms.

        Niklaus Wirth

In Wirth's opinion, and the opinion of many reputable linguists like
Steven Pinker, the analogy betweem formal notations :-) and human
languages is bogus. "Spoken" is the key point to consider.

-- Brian    


 
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.
Messages 251 - 275 of 1243 < Older  Newer >
« Back to Discussions « Newer topic     Older topic »