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