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
Well, there's nothin' like a little egg on my face. :-(
After announcing that I wouldn't use Python in my development, guess what:
I find that I need Python.
Specifically, I am going to develop my next new application, Phynchronicity, in Python.
After my difficulties with Python before, why change now? Because of a more fundamental principle of software development: it's better to clean up old code than to scrap it.
Before I ran into my showstopper difficulties with Python and PacketStream, I spent a fair amount of time prototyping Phynchronicity in Python/Tkinter. The GUI, while a bit rough, was well on its way to being complete, and polished. I had little doubt about Python's "under-the-hood" ability to meet my needs here: I was mainly worried about the limitations of using Python's bindings to Tk, my GUI tooolkit of choice.
Those limitations are real--for various reasons, it's very hard to do certain things in Python that are easy to do in Tcl/Tk, and in such situations make Python is a poor choice for developing a GUI via Tk. But limitations can be worked around, with intelligent decisions in interface design.
So, this means I've been putting together a Python/Tkinter GUI in a slightly different fashion than I would a Tcl/Tk GUI. It might be a little simpler in appearance. But it won't be any less feature-rich--and it will be clean and attractive.
Besides, Python is a fun language to develop in. It has some cool features that Tcl lacks. The difficulties I had with the Python version of PacketStream--and the existence of a nearly-finished Tcl prototype--made it simpler to switch to Tcl rather than work through whatever bugs existed in the Python version. In the case of Phynchronicity, however, starting with Tcl means starting from scratch. And I'm not eager to do that. Since I've already invested a lot of time in the Python version, it's easier to continue with Python. So that's what I will do.