My Python annoyances

Ben Collver collver at peak.org
Thu May 3 09:49:26 EDT 2007


I rewrote my code in Python and I found myself running into many of the 
same hassles that I run into with other languages: inaccurate and 
incomplete documentation, a maze of little platform-specific quirks to 
work around in the base classes, and a macho community of users.

The python web site recommended Dive Into Python, so I learned by 
reading that.  It has several examples that don't work because the 
Python base classes have changed behavior.  I should have taken that as 
lesson.

I tried to write portable Python code.  The zlib CRC function returned 
different results on architectures between 32 bit and 64 bit 
architectures.  I filed a bug report.  It was closed, without a comment 
from the person who closed it.  I get the unspoken message: bug reports 
are not welcome.

I installed Cygwin on a Windows machine.  I try to quit from an 
interactive Python session.  It tells me that on my platform, I must 
press Control-Z to exit.  I press Control-Z and it makes Python a 
background process.

I tried to use the XML.minidom.  The documentation here is minimal as 
well.  So I read up on other web sites.  It turns out that the interface 
has changed quite a bit from the documentation I found on other web 
sites.  Where are the much loved docstrings?  In 2.3 minidom, they are 
sparse and cryptic.

Between 2.4 and 2.5, tempfile returns a different type of object.  My 
code cannot have a single test, it has check for type(obj) == file or 
obj.__class__ == tempfile._TemporaryFileWrapper.

I decided to make a tkinter front-end for a Python program.  I decided 
to go with tkinter because it is included with many Python 
installations, so it maximizes the chance for my program to run out of 
the box.

The tkinter documentation on the Python site mainly consists of loose 
notes and links to other sites.  The documentation on other sites is 
great, if you already know how to use tkinter.  I ran into bugs in 
TkAqua which make the grid layout unusable for me.  So I will need to 
ask potential users to install Xcode, X11, and mac ports, if they want 
to run my program.

In short, there is plenty of room for improvement.  Admittedly these are 
not problems with the language definition.  But I downloaded a Python 
distribution, and the problems are Python specific.



More information about the Python-list mailing list