On 15 Apr 1997 12:26:24 +1000, Chris Bitmead
>email@example.com (Alaric B. Williams) writes:
>> How do you defined "power"? I have seen two definitions in languages:
>I personally would definitely go with 2) as the correct definition. 1)
>has it's uses but I wouldn't call that general purpose
>"power". According to that definition, assembler is a super-powerful
>language. To me this is absurd. Assembler has it's uses, but powerful
>isn't an adjective I'd use.
The major attitude I find amongst UNIX/C people is that assembler is
the ultimate in power, but also hard to use. C is pandering to
the user's needs, and thus drops in power. I have been told that
Linux is hard to configure because it is "so powerful", in that
you have to tell it the intimate details of your system - such
as telling X the dot clock rate for your graphics system!!!
When they look at languages like Scheme, TCL, or whatever, the
immediate reaction is "What an unpowerful language". I've got
an ongoing discussion thread with a long time C user archived,
but it gets a bit personal in places, so I'd better not post
>> Low Level Power:
>> 1) C++
>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.
Yes, good point; however, C++ people don't realise it's a useful
feature (no offence, guys!)
I think the difference is that C++ has lost this "power" since the
problems for compiler generation against little perceived use
(back then, structured programming was the ultimate technology,
so I guess people got a little overexcited :o) made it seem
worthless, a "nasty" implementation detail of assembler we could
do best without. Continuations are a nice way of providing this
power without getting into hairy addresses and stack pointers.
>> High Level Power:
>In the high level power stakes, I think we must still put TCL last. If
>we take your definition of being able to do major things with simple
>pieces of code, I think TCL lacks the ability to do major things. TCL
>can nicely _control_ major things, where those major things are
>implemented in say C, but it can't nicely _implement_ major things.
Huh - from all the retorick here, I had a better impression of it.
Can't judge a book by it's cover :-(
But then again, perhaps we need to define the distinction of the
edge of the language better. A tiny gluing language with an immense
set of freely available libraries is, evidently, quite a powerful
tool. Like Scheme with /optional/ Common Lisp libraries! In this
case, the design of the language is to glue bits together, and as
such it's not expected to do much on it's own. So we would hope
that TCL gets things done by delegation.
However, I suspect the model is more of providing specific-purpose
tools to TCL programs, and then letting them control the overall
flow of execution. This is where it gets poor, since we have
monolithic foundations, which a house of TCL straw is then built
upon. If these modules were more abstract, general, things -
such as the way that arithmetic operators are added to a simple
LISP core system, and now it can do arithmetic just like any other
language, rather than coding all the arithmetic in C and linking
it into LISP - then we would have perhaps acheived a useful goal.
>So.. 1) Scheme 2) C++ (reluctantly) 3) TCL.
>The extent to which TCL is "powerful" is basicly because it is
>typeless. It gives programmers the illusion that they can do a lot
>without a lot of preparation and mucking around. This is a good thing!
>But I wouldn't like to sacrifice true language "power" to get it if I
>didn't have to.
"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 : firstname.lastname@example.org
<A HREF="http://www.abwillms.demon.co.uk/">Hello :-)</A>