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