Phil Schmidt pschmidt at omnimn.com
Fri Jan 17 15:22:00 CET 2003

No questions here, I just want to express my appreciation for Python.
I've been messing with it for about a year now, and have really
enjoyed the opportunities it has offered me to do things I would never
consider attempting in C (which is my "native" programming language)
or any of the other langauges I am mildly competent in.

Some examples:

-- I've done sockets programming with tkinter to create a custom
client gui for a proprietary test tool. I could have written the GUI
portion of this in VB, but that would have been a truly joyless task.
In Python, once I figured out how to structure the objects, this was a
real breeze.

Part of this GUI required data to be ferried to multiple screen
objects, so I implemented a "patch panel" object to allow arbitrary
objects to plug into arbitrary data sources. This turned out to be an
extremely elegant way to solve the problem. I can't imagine the hair I
would have lost had I attempted this in C or in VB.

-- I've written several different parsers to read and interpret simple
little application specific or play languages. One such processes C
code (!) that contains special, custom data descriptors. The customer
requirements for these descriptors was too complex to allow the C
preprocessor to create the neccesary data structures from the

My Python module scans the C code, extracts the descriptors, and then
builds a new C module that declares and defines the necessary
structures. I spent about a week working on this. and again, had I
attempted to do this in C, I can't imagine it taking any less than a
month to do. Plus, there were subsequent changes requested, taking
only an hour or so in Python to fix, versus what would have likely
been at least a day in C.

-- My latest somewhat-big project is a home accounting program (I
refuse to pay for commercial stuff that tries to do everything for
everybody, and requires a multi-GHz multi-GByte PC with terabytes of
hard drive space and 3-d graphics. Accounting, at core, is simple, and
the software should be too!). I chose to make this a console
application, so had to figure out a simple but extensible method of
doing the menus. With only a few hours of trying out different
methods, I had settled on something I liked. The ability to do quick
prototyping is an amazing productivity booster!

I used Python's introspection capabilities to come up with a simple
data logging method that makes the log itself nearly executable python
code, allowing startup to simply read log lines and execute them to
reproduce the current state of the ledger.

Then, I discovered that reporting would be much easier if I had some
database capability, so I decided to create my own. This too has been
an interesting exercise, prototyping different ways of representing
the data, doing queries, and such. And it's fun!


Through all the tinkering I've done with Python, I think what I like
best is the fact that I can quickly try something out, and easily and
quickly make changes to evolve to what I'm after. That allows me to
play around with things I would hardly dare touch in C.

In the course of solving some "big" problem, I invariably encounter
lots of interesting little problems that I can actually solve quickly
with Python, and whose solutions in Python almost always turn out to
be quite clean, elegant, and extremely easy to integrate into the
bigger problem that gave rise to the little problem. A good example is
the database stuff: how best to do set operations on queries led me to
a nice little diversion, and which in the end produced a neat little
solution to the problem.

So, bottom line is that I offer hearty applause, and my sincere
gratitude to all the people who have made Python what it is. Thank

More information about the Python-list mailing list