Python reliability

Peter Hansen peter at engcorp.com
Mon Oct 10 21:40:51 EDT 2005


Ville Voipio wrote:
> I am not building a redundant system with independent
> instruments voting. At this point I am trying to minimize
> the false alarms. This is why I want to know if Python
> is reliable enough to be used in this application.
> 
> By the postings I have seen in this thread it seems that
> the answer is positive. At least if I do not try 
> apply any adventorous programming techniques.

We built a system with similar requirements using an older version of 
Python (either 2.0 or 2.1 I believe).  A number of systems were shipped 
and operate without problems.  We did have a memory leak issue in an 
early version and spent ages debugging it (and actually implemented the 
suggested "reboot when necessary feature" as a stop-gap measure at one 
point), before finally discovering it.  (Then, knowing what to search 
for, we quickly found that the problem had been fixed in CVS for the 
Python version we were using, and actually released in the subsequent 
major revision.  (The leak involved extending empty lists, or extending 
lists with empty lists, as I recall.)

Other than that, we had no real issues and definitely felt the choice of 
Python was completely justified.  I have no hesitation recommending it, 
other than to caution (as I believe Paul R did) that use of new features 
is "dangerous" in that they won't have as wide usage and shouldn't 
always be considered "proven" in long-term field use, by definition.

Another suggestion would be to carefully avoid cyclic references (if the 
app is simple enough for this to be feasible), allowing you to rely on 
reference-counting for garbage collection and the resultant "more 
deterministic" behaviour.

Also test heavily.  We were using test-driven development and had 
effectively thousands of hours of run-time by the time the first system 
shipped, so we had great confidence in it.

-Peter



More information about the Python-list mailing list