TIP: 9
Title: Tk Standard Library
Version: $Revision: 1.9 $
Author: Marty Backe <[email protected]>
Author: Larry W. Virden <[email protected]>
Author: Jeff Hobbs <[email protected]>
State: Withdrawn
Type: Project
Vote: Pending
Created: 07-Nov-2000
Post-History:
Tcl-Version: 8.4
~ Abstract
A Tk standard library shall be bundled with the core Tcl/Tk
distribution. The library will consist of general purpose widgets and
composite widgets for use in constructing Tcl/Tk applications. The
library of Tk components will be written in Tcl/Tk.
~ Rationale
Although Tcl "ships" with a comprehensive set of native (compiled)
base Tk widgets, it lacks a library of composite widgets, from which
sophisticated applications can readily be built with minimal
reinvention.
Although the Tcl community has created a wealth of general purpose Tk
widgets, generally they are not centrally located or distributed,
making their use problematic. This requires that Tcl programs which
make use of such widgets must either distribute them or direct the end
user on their acquisition and installation. Arguably, the success and
higher visibility of other "competing" scripting languages can be
attributed in some part to their extensive libraries. Tcl/Tk should
continue this trend.
Tcl is perhaps unique in that it is considered both a graphical (Tk)
and non-graphical (Tcl) programming language. Work has begun in
implementing a standard library for Tcl. It could be argued that
Tcl/Tk's largest base, and its largest growth area, is with regards to
graphical applications. To this end, Tcl needs a comprehensive, and
well maintained Tk standard library.
Finally, to lower the barrier of using the Tk libraries, they should
be Tcl/Tk based. This helps to assure cross platform independence
without requiring the user to compile code against a source
distribution.
~ Specification
* The standard Tk library will be called "tklibX.Y", where "X.Y" will
follow the version number of the Tcl/Tk distribution that it's
compatible with.
* Major/minor releases of the tklib shall coincide with the
major/minor releases of Tcl/Tk. That is, if Tcl/Tk version 8.5 is
released, a tklib8.5 shall be released. The tklib8.5 version shall
be tested and confirmed to be compatible with the release of Tcl8.5
& Tk8.5. Note that changes to tklib will not necessarily be
required for it to receive a new version number, but the new
version shall indicate that it has been tested and verified
compatible with the new Tcl/Tk version.
* The tklib shall be considered part of the "core" of Tcl/Tk. That
is, releases of major/minor versions of Tcl/Tk shall not be made
independent of tklib.
* Additions to the tklib shall be made through a voting process,
which is to be decided.
* Tklib components shall include a test suite. This test suite
will be the means by which the library is verified as compatible
with a new release of Tcl/Tk.
* Tklib components shall include documentation to the same standards
as Tcl/Tk, i.e., man pages, etc. Let's continue the tradition of
Tcl/Tk having the best documentation.
* The tklib components will include one or more demonstration scripts
that show to best effect all of the features and options provided
by the component. A picture is worth a thousand words! The Tk,
BWidgets, and Iwidgets demos are prime examples to be emulated.
* Tklib components can be dependent on other tklib components. If
tklib and tcllib become coordinated efforts, the tklib components
can be dependent on tcllib components.
* The tklib can (and hopefully will) include megawidgets.
* Tklib components shall be written in Tcl/Tk.
* Tklib components shall be implemented in their own namespace and
distributed in package form.
* Tklib components do not have to be unique with regards to other
tklib components, although there shall be differentiating
characteristics between them. There is more then one way to skin a
cat.
* The tklib shall not contain applications, IDEs, or development
tools.
~ Notes
A tklib module has been created next to the aforementioned tcllib at
http://tcllib.sf.net/ This creates the basic infrastructure for
people to work in, but does not set any status related to the core as
yet.
----
''Larry W. Virden writes'':
> It appears to me that tklib isn't going to be bundled with the tk
source code distribution any more than tcllib getting distributed
with the tcl core distribution.
> If the TCT concurs that this is the case, then I would propose that
this TIP be withdrawn. tklib exists now, and to date, submissions
are extremely rare.
> Here we are, some time later, and no action still on either
withdrawing or rejecting this TIP. Perhaps some action could be
taken on this TIP?
----
~ Copyright
This document has been placed in the public domain.