Code by Kevin

About
Code by Kevin, Programming, code, business, and other pursuits

Your Host
Kevin Walzer, software developer.



Home

Subscribe to RSS Feed
Get a syndicated feed of my weblog.

Archives
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
2006

Categories
Business
Software
General

Privacy Policy

Site design: Skeleton

 

Tue, 13 Mar 2007

Never say never

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.

[/general] permanent link