In article <87d8s8jqck.fsf@A-abe.resnet.ucsb.edu>,
Graham C. Hughes <graham.hughes@resnet.ucsb.edu> wrote:
> Donald Syme <drs1004@cl.cam.ac.uk> writes:
>> Trash. Show me C++ which is as succinct and I may believe
>> you.
>
> How much do you want? I've found that STL makes my code incredibly
> brief, and with the correct toolkit (I like Qt), windowing isn't that
> hard, either. Better, you can subclass existing components so you can
> create a new widget, something you can't do in Tcl/Tk without
> resorting to C extensions.
What exactly do you mean by "subclassing"? How can you be sure that
you need a C extension to do it with Tcl/Tk? I have made Tcl/Tk-only
labelled frames, comboboxes and progress meters quite easily, so it is
entirely possible that you are simply mistaken in your assertion.
> This is an aside, however; the real issue is that Tcl/Tk is a
> glorified macro processor, full of weird tricks. Try explaining why
> you can't pass an array, or why 'set $$foo bar' doesn't work some
> time. *This* is the reason why Tcl/Tk is ``concise''; everything is a
> string. Where else can we find:
>
> - lists where accessing anything is an O(n) operation
What version are you talking about? This (a long-standing complaint
of many Tcl entheusiasts) is no longer true in Tcl8.
> - numbers that autoconvert when you don't want them to (on
> east coast area codes, for example)
I believe this (another moan of great age) is fixed too.
> - non-extensible mathematical expressions (think expr here)
Fair enough, though I'd add that putting in your own stuff (which does
admittedly have a different syntax) is still not hard.
> - call by name
> - dynamic scoping
These two are construable as a feature (though I would like the other
kind of semantics AS WELL... :^)
> and other assorted nastiness. Even Perl is a breath of fresh air
> compared to this.
For some things.
> I have nothing but good things to say about Tk. Its incarnation in
> other languages like Scheme, Python, Perl, and O'Caml are very nice,
> and in the correct language (I know Python does this, not sure about
> the others) you can even subclass widgets. Tcl, however, is something
> else entirely, and I reject it for anything except trivial programs
> out of hand.
I suppose it all depends on your definition of trivial, but there are
commercial applications out there written in Tcl/Tk with over a
million lines of code. I do admit that systems of that size (whatever
written it) boggle my mind a bit though... :^)
Donal.
--
Donal K. Fellows http://r8h.cs.man.ac.uk:8000/ (SAY NO TO COMMERCIAL SPAMS!)
(work) fellowsd@cs.man.ac.uk Dept. Comp. Sci, Univ. Manchester, U.K.
| donal@ugglan.demon.co.uk 6,Randall Place, Heaton, Bradford, U.K. (home)
+-> ++44-161-275-6137 Send correspondence to my office ++44-1274-401017 <-+
|