Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Delivering a presentation justifying use of TCL/Tk

9 views
Skip to first unread message

Matt B

unread,
May 3, 2006, 7:22:10 PM5/3/06
to
Hi all,

I've recently developed my first app using TCL and Tk. It's a fairly
simple GUI reminder program - the basic functionality being that
alerts the user when a preset time comes around.

The app was developed as part of a university assignment that required
a combination of niche technologies to be used to create a small
application. In a few days time I have to deliver a presentation on it
to my tutorial group, detailing why I've chosen the approach over
other approaches I could have chosen.

Very few people from my group will have heard of TCL before, so I have
to introduce them to the technology and justify to them my decision to
use it. To summarise, I've used the following in my app:

TCL / Tk
An SQLite database
Snack (the sound toolkit)
winico (toolkit for system tray icons)

The main reason that I chose these technologies was because they
looked like interesting choices. However, that isn't going to fill a
15 minute slot. I need more.

Can anyone suggest some justifications for choosing these technologies
over other possibilities (e.g: .NET or java). I need to talk about not
just the strengths of the above technologies, but also their
weaknesses compared to other approaches.

Appreciate any advice.

Matt

Cameron Laird

unread,
May 3, 2006, 10:07:40 PM5/3/06
to

Adrian Ho

unread,
May 3, 2006, 10:26:20 PM5/3/06
to
On 2006-05-03, Matt B <matt...@hotmail.co.uk> wrote:
> I've recently developed my first app using TCL and Tk. It's a fairly
> simple GUI reminder program - the basic functionality being that
> alerts the user when a preset time comes around.

Congratulations! The first time's usually the hardest. 8-)

> The main reason that I chose these [Tcl] technologies was because they


> looked like interesting choices. However, that isn't going to fill a
> 15 minute slot. I need more.
>
> Can anyone suggest some justifications for choosing these technologies
> over other possibilities (e.g: .NET or java). I need to talk about not
> just the strengths of the above technologies, but also their
> weaknesses compared to other approaches.

Well, the Wiki pages listed in <http://wiki.tcl.tk/strengths*> and
<http://wiki.tcl.tk/weaknesses*> are a good start, though their
respective search results do overlap. There's also a rather-long
<http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/34141db42c10dd9b/>
newsgroup thread that you may want to skim through for inspiration.

However, I'd also like to suggest taking a somewhat non-academic
approach as well and talk about how it *feels* to develop with
Tcl/Tk/SQLite/Snack/winico/etc. instead of other languages that you're
familiar with. Giving your audience a feel for your journey into Tcl is
IMO much more interesting than dry-as-dust facts about its capabilities.

In any case, far too many such presentations talk about how technology
X beats the pants off B, Z and Tcl in performance, but don't mention
that X's handling aspects make it fit only for people who practice
self-flagellation nightly, or like to pound their heads against a wall
in frustration, or against their keyboards in a literal interpretation of
"banging code".

I for one look forward to seeing your presentation slides, if you can
make them available. It would be nice to experience again the joys of
a Tcl newbie. 8-)

- Adrian "Old(Tcl)Fart"

Arjen Markus

unread,
May 4, 2006, 3:01:37 AM5/4/06
to
One of the things I thoroughly enjoy about Tcl is the fact that quite
often data can
become code - for instance, recently I had to convert a few data files
whose
contents had to be written in a very different form.

As the files contained keywords and parameters (separated by spaces),
all I needed to do was define _procedures_ that would take the same
number of
parameters and that would store the parameters for later retrieval.

The classical approach would of course be to read the data file and
parse all the records yourself. In this case that would not have made
that much difference in the
length of the code, but it did save me time :).

Another example: I needed to convert a long table of data, stored in a
simple text
file with two numbers in each record to an XML file of sorts:

1 2
2 3
4 5
5 6
....

Rather than reading the file line by line, I simply edited it, turned
the table into a list
and added code to write the XML file:

set data {
1 2
2 3
4 5
5 6
....
}
set outfile [open "..." w]
foreach {first second} $data {
write to file ...
}

Now, these may not be world-shocking examples of Tcl usage, I do find
it a very
handy tool!

Regards,

Arjen

Torsten Reincke

unread,
May 4, 2006, 5:22:20 AM5/4/06
to
Hi Matt,

> Can anyone suggest some justifications for choosing these technologies
> over other possibilities (e.g: .NET or java). I need to talk about not
> just the strengths of the above technologies, but also their
> weaknesses compared to other approaches.

One important justification (at least for me) is that coding in Tcl is
a fast way to make a prototype for a given job including GUI, bells and
whistles. Often then, it appears that this prototype is good enough to
do the job without the need to code the actual software again using
another language (C, Java, you name it), just because the other
software is known to be more mature or faster or whatever. Because the
job is actually done, when the prototype runs and is capable of doing
the desired job.

You always have the ability to exchange parts of your code with faster
C code later, if need be. Tcl is so extremely flexible, that there is
no need to reinvent the wheel. And since it is Open Source, you can
always fix broken things or help fixing them, which is a big advantage
over commercial technologies.

Torsten

Larry W. Virden

unread,
May 4, 2006, 7:38:30 AM5/4/06
to
Are you supposed to be justifying YOUR use of tcl/tk, or justifying
anyone's use of the language?

Matt B

unread,
May 5, 2006, 4:08:54 AM5/5/06
to
On 4 May 2006 04:38:30 -0700, "Larry W. Virden" <lvi...@gmail.com>
wrote:

>Are you supposed to be justifying YOUR use of tcl/tk, or justifying
>anyone's use of the language?

Thanks for the replies. I'll make sure to mention all of these points.

I am supposed to be justifying the use of TCL/Tk for the problem I
have chosen to tackle - ie a simple GUI reminder app.


So, for example, I might include points such as:

Why is TCL/Tk a better choice for a simple GUI app? What advantages /
disadvantages would I have had, had I used Visual Basic instead? What
about Ruby?

Why is an SQLite database a better option for this kind of
application, than, say, an Access database? Are there any advantages
to Access over SQLite? What else might have been considered instead?

What about for sound functionality? Snack works very well, but are
there alternatives?

etc...


Without doubt, one of the best things about TCL for me, is the strong
developer community. I'm talking about the abundance of documentation,
such as the extensive wiki, and also the extremely helpful experts who
I've encountered from hanging around the TCL chat, who between them
must have saved me hours of coding. Thanks for all your help on this,
guys.

Matt

Larry W. Virden

unread,
May 5, 2006, 11:53:52 AM5/5/06
to
I think it is a good idea to speak from your experience yourself.

Cameron Laird

unread,
May 5, 2006, 11:08:56 AM5/5/06
to
In article <e6nk52l45crj16ca5...@4ax.com>,

Me, too. That is, much of the reason I use Tcl has to do with the
other people who do. I strongly urge you to feature this in what
you say. Your classmates need to hear of the importance of these
social factors, and understand for themselves how they complement
the technical features they're accustomed to believe determine
engineering decisions.

If I were addressing your other questions, I'd aim for simple
clarity. Here's evidence for Tk's aptness for GUIs: you can write
a simple-but-complete GUI application in one (!) line, but, at the
same time, Tk features the text and canvas powerhouses, is far more
general-purpose and capable of intelligence than VB, and
conveniently constructs single-file executables.

What I mean by "intelligence": try using VB to make a GUI that
does the things one wants a computer to do: adjusts the display
as one moves the mouse pointer around it, disables and re-enables
widgets handily in dependence on run-time data, configures widgets
based on data, and so on.

Let us know when you need more specific details.

ldup...@gmail.com

unread,
May 8, 2006, 10:09:19 AM5/8/06
to
Matt B wrote:
> Can anyone suggest some justifications for choosing these technologies
> over other possibilities (e.g: .NET or java). I need to talk about not
> just the strengths of the above technologies, but also their
> weaknesses compared to other approaches.
>

Facts are nice. They give credibility to what you say, especially if
you can cite experts in the field. Remember, though, that in the end,
it's how you feel about those facts that will sell people on what you
say and do.

To be most effective, your presentation should exude enthusiasm. As
others have said, talk about how developing withTcl makes you feel.
After telling them all the facts, tell them a story. Turn off your
Powerpoint (if you use it), and just talk about your experience. I
guarantee you that it is the part of the presentation people will most
remember. And if you are truly happy about using Tcl, it will show and
others will be interested in trying it out, just so they can feel as
good as you.

There is a bit more info about this on my web site:
http://www.duperval.com

L

0 new messages