Code by Kevin, Programming, code, business, and other pursuits
Kevin Walzer, software developer.
Subscribe to RSS Feed
Get a syndicated feed of my weblog.
Site design: Skeleton
As I noted before, Python itself is a very rich, very powerful language, but it's harder to use its Tk GUI bindings than from Tk's native language, Tcl. I've done work in trying to integrate Tkinter better with some cool Tk libraries that allow more sophisticated GUI's.
Nonetheless, things aren't working the way I would like. I keep running into various bugs of one sort or another, in which things don't work under Python the way they would work under Tcl, and these bugs are beyond my ability to fix.
One example: I want to use Python's bindings to the BWidget Tk library, which allows for richer GUI's than the base Tk widgets (BWidgets provides a tree widget, drag and drop, listboxes with images, and so on). But I can't get things to work quite right: no matter what I do, I can't figure out how to get selected text to display properly. This bug report went unanswered, which means I'm pretty much on my own here.
This means I have a couple of choices if I want to develop an application with a GUI more sophisticated than PacketStream's; I can use Python with another GUI toolkit, such as wxPython, or I can use Tcl as the development language.
Given my investment in Tcl, and my reluctance to spend yet more time learning another GUI toolkit, I think this decision is pretty easy.
I'll certainly continue to develop PacketStream in Python, and there may be instances where Python is an attractive option and the requirements of a GUI do not exceed what Python/Tkinter can deliver. But absent that, I will be concentrating more of my development time on Tcl.