Skip to content

Entwickler Bescheidenheit

In einem Blog Artikel beschreibt Joshua Bloch einen Bug in der binary-search Implementierung der Java Klassenbibliothek und schliesst die Ausührung mit der Bemerkung:
The binary-search bug applies equally to mergesort, and to other divide-and-conquer algorithms. If you have any code that implements one of these algorithms, fix it now before it blows up. The general lesson that I take away from this bug is humility: It is hard to write even the smallest piece of code correctly, and our whole world runs on big, complex pieces of code. We programmers need all the help we can get, and we should never assume otherwise. Careful design is great. Testing is great. Formal methods are great. Code reviews are great. Static analysis is great. But none of these things alone are sufficient to eliminate bugs: They will always be with us. A bug can exist for half a century despite our best efforts to exterminate it. We must program carefully, defensively, and remain ever vigilant.
Lesebefehl für jeden Entwickler: wird sind manchmal einfach zu arrogant und unkritisch mit unserem Code. Es geht jetzt weniger um den speziellen Fehler (ich hatte den Fehler in der Zeile vermutet aber eher bei der Rundung als beim Überlauf, und das obwohl ich normalerweise versuche solche Additionen zu vermeiden) sondern mehr um die Tatsache dass so ein trivialer Quelltext einen Fehler enthalten kann der fast 9 Jahre unbemerkt ist (und dabei Millionen von Anwendern hat, sogar in mehreren Lehrbüchern zu finden ist). Danke an Peter Luschny (de.comp.lang.java) für den Link. Dort hält man das ganze übrigens für einen PR Gag für sein neues Buch, das jetzt auch schon auf meiner Wunschliste steht.

Trackbacks

IT Blog on : Eine interessante Aussicht

Gerade hatten wir es ja noch von Wertebereichen: hier das Verhalten von Firefox mit windows Vista (beim Download nicht im Betrieb). Negative GrößeAch ja, wer sich wundert warum ich den Firefox 1.5 für den Download benutze: der MS (Akami) Download Manag

Comments

Display comments as Linear | Threaded

No comments

Add Comment

BBCode format allowed
Enclosing asterisks marks text as bold (*word*), underscore are made via _word_.
E-Mail addresses will not be displayed and will only be used for E-Mail notifications.
To leave a comment you must approve it via e-mail, which will be sent to your address after submission.

To prevent automated Bots from commentspamming, please enter the string you see in the image below in the appropriate input box. Your comment will only be submitted if the strings match. Please ensure that your browser supports and accepts cookies, or your comment cannot be verified correctly.
CAPTCHA