Wize /
Tcl Tk Missing
Search:  

1.  The Features Missing in Tcl/Tk

When developing larger applications in Tcl/Tk it quickly becomes apparent that some areas of Tcl leave something to be desired. Following is a list of shortcomings and how they are addressed in Wize.

1.1  Tk Widgets Are Incomplete

The built-in Tk widgets are simply incomplete. Most obviously lacking is a generally useful Table/Tree widget. The available add-ons all have issues:

  • Tktable doesn't autosize (rows/cols) data or support trees.
  • ttk::treeview doesn't autosize and is feature-poor.
  • TreeCtrl is powerful, but extremely complex to program in.

Also, none of these provide a simple way to display alternating row colors (eg. during tree open/close).

Moreover, it is a non-trivial task to collect, integrate and evaluate such add-on widgets/extensions.

Wize provides this integration for you, and in addition includes a modified Blt which contains:

TreeView provides just the sort of Tree/Table widget that Tk has for so long needed.

1.2  Packaging

When a Tcl application is larger than a single .tcl file it typically gets distributed as an archive (.zip or .tar.gz). Unfortunately, it isn't alway clear just how to install/run such an application.

TclKit offers one solution, but it requires a purpose-built archive format (ie. .kit).

Wize provides native support for zip files and supports running applications directly from a .zip. It also standardizes the entry point: main.tcl.

1.3  Validation

Vanillay Tcl performs little in the way of program validation. Usually validation occurs as lines of code are executed so errors are just not discovered until runtime. For larger applications, this quickly becomes a source of tedium

Wize adresses this by adding the -Wall option.

1.4  Large GUIs Are Complex

When creating larger Tk graphical user interfaces, complexity can quickly become overwhelming.

Wize addresses this with the Gui layout engine.

1.5  No Data and Object Support

Tcl doesn't provide an object abstraction per-se, although numerous extensions that do are available. One problem with using these however is it's unclear if they reduced complexity enough to justify the disadvantage of adding another dependacy.

That said, applications in Tcl frequently benefit from a way to organize code and data.

Wize addresses this with the minimal Object Abstraction Tod.

1.6  User Inputs

In Tk, getting a string of input requires writing a dialog.

Wize provides an Inputs dialogs for managing string input from users.

1.7  No Database

Wize comes with Sqlite.

1.8  Sound

The Snack sound extension provides sound in Tcl. However, the MP3 support is proprietary, incomplete and non-removeable. Wize addresses this by rewriting it to use libmpg123.

1.9  3D Graphics

Wize adds an enhanced Canvas3d for supporting 3d graphics.

© 2008 Peter MacDonald

Page last modified on December 08, 2009, at 03:13 PM