Return-Path: <John.Harrison-request@cl.cam.ac.uk>
Delivery-Date: 
Received: from leopard.cs.byu.edu (no rfc931) by swan.cl.cam.ac.uk 
          with SMTP (PP-6.5) outside ac.uk; Wed, 14 Dec 1994 16:13:37 +0000
Received: by leopard.cs.byu.edu (1.38.193.4/16.2) id AA09610;
          Wed, 14 Dec 1994 09:03:06 -0700
Sender: info-hol-request@lal.cs.byu.edu
Errors-To: info-hol-request@lal.cs.byu.edu
Precedence: bulk
Received: from swan.cl.cam.ac.uk by leopard.cs.byu.edu 
          with SMTP (1.38.193.4/16.2) id AA09605;
          Wed, 14 Dec 1994 09:02:50 -0700
Received: from auk.cl.cam.ac.uk (user drs1004 (rfc931)) by swan.cl.cam.ac.uk 
          with SMTP (PP-6.5) to cl; Wed, 14 Dec 1994 15:55:58 +0000
To: info-hol@leopard.cs.byu.edu
Subject: TkHolWorkbench: Re: What is Tk?
Date: Wed, 14 Dec 1994 15:55:52 +0000
From: Donald Syme <Donald.Syme@cl.cam.ac.uk>
Message-Id: <"swan.cl.cam.:195890:941214155602"@cl.cam.ac.uk>



Ching Tsun has asked me the following, and as some people
had asked me similar questions here I thought I should
send around some general information on Tk/Tcl, as well
as answers to Ching Tsun's specific question on NeXT.

> Hi,
>
> Sorry for my ignorance: What is the Tk toolkit?
> I use a NeXT, so I guess I can't use your tools?
>
> Thanks!
>
> - Ching Tsun


With regard to NeXT:

Tk and Tcl can, I think, compile using NEXTSTEP 3.1,
but I'm not guaranteeing anything!  I've included
below everything from the FAQ's that relates to NeXT.
It may be that they are talking about systems
running NeXT underneath and X11 on top.  I don't think this is
normal, is it?  I'm sorry if that is the case.  Tk
is now supported on many platforms, including some
early ports to Windows.

Someone I live with has a NeXT, so I might try to compile
Tk/Tcl on it in the New Year.


With regard to Tk/Tcl:

Some TkTcl WEB sites:

<URL:http://web.cs.ualberta.ca/%7Ewade/HyperTcl/>
and
<URL:http://www.sco.com/IXI/of_interest/tcl/Tcl.html>

I thought I would take the opportunity to explain a bit
more about Tk/Tcl and my experience of it.
At the end of this message I've attached some bits and pieces 
from the "comp.lang.tcl" FAQ.  I'll just mention a few things
from my experience here.

I first used Tk/Tcl to write a user interface for a GIS package
last year.  Using it literally saved the project from
disaster, and in one quarter of the time allocated for
the project we were able to well exceed the project
requirements.  Essentially, Tk/Tcl makes windowing systems
easy and fast to build.

Like HOL, one of the biggest advantages of Tk/Tcl is its
large user community, an indication of which is the volume
of traffic that goes through comp.lang.tcl.  There 
are many extensions and example packages available
which use Tk/Tcl, and since Tk/Tcl is freely distributable,
these usually are too.

Tcl is the underlying script language.  Tk is an extension
to Tcl which provides access to an excellent X11 based
widget set.


I got the following from the "comp.lang.tcl" FAQ:


Tcl (Tool command language) is a freely distributable simple,
interpreted language designed to be used as a common extension and
customization language for applications.  It was designed and
implemented by Dr. John Ousterhout in the hope that application
designers could spend more of their time on applications and less on
scripting languages, and in the hope that users could spend less time
learning new scripting languages for each new application.  Many useful
applications, some of them sold commercially, use Tcl as their
scripting language.

Tcl is clean and regular, and relatively easy for non-hackers to
learn.  It is command-oriented, and commands added by applications and
users exist on an equal footing with the built-in Tcl commands.  Tcl
has both simple variables and associative arrays (tables), and all
values (including procedure bodies) are represented as strings.
Simple customization scripts (such as preference initialization
scripts) usually look much like novice users expect them to: a series
of simple commands which set options.

Tcl is implemented as a C library, which can be embedded in an
application.  The application can add its own commands to the
interpreter (using a clean C interface).  It is distributed under a
license which allows use for any purpose with no royalties.

The Tk toolkit is a Tcl extension (a group of new Tcl commands) which
provides a Tcl interface to the X Window System.  Tk is one of the
easiest ways to build a graphical interface to an application, and due
to the interpreted nature of Tcl, Tk-based interfaces tend to be much
more customizable and dynamic than those built with one of the C- or
C++-based toolkits.  Tk implements the Motif look and feel.  A number
of interesting X applications are implemented entirely in Tk, with no
new application-specific commands at all.  Tk also provides a
mechanism by which one application can send Tcl scripts to other
Tk-based applications running on the same display, for easy
cooperation between tools.

Tcl and Tk are mature, and quite stable, but they are not static:
Dr. Ousterhout has moved from Berkeley to Sun Microsystems, where his
group is pursuing such projects as a commercial-quality Tk
graphical interface designer, an on-the-fly Tcl compiler, and
Macintosh and Microsoft Windows ports of Tk.  He has said that the
copyright status and licensing provisions of Tcl and Tk will not change.



