{"id":436,"date":"2007-10-15T19:13:56","date_gmt":"2007-10-15T09:13:56","guid":{"rendered":"http:\/\/www.somethinkodd.com\/oddthinking\/2007\/10\/15\/eiffel-and-ariane-5-revisiting-the-claims\/"},"modified":"2007-10-15T19:15:26","modified_gmt":"2007-10-15T09:15:26","slug":"eiffel-and-ariane-5-revisiting-the-claims","status":"publish","type":"post","link":"https:\/\/www.somethinkodd.com\/oddthinking\/2007\/10\/15\/eiffel-and-ariane-5-revisiting-the-claims\/","title":{"rendered":"Eiffel and Ariane 5 &#8211; revisiting the claims"},"content":{"rendered":"<p>So, a random blogger (<a hreh=\"http:\/\/odetocode.com\/Blogs\/scott\/articles\/category\/3.aspx\">K. Scott Allen, OdeToCode<\/a>) <a href=\"http:\/\/odetocode.com\/Blogs\/scott\/archive\/2007\/10\/08\/11453.aspx\">quoted<\/a> from an old paper by J\u00c3\u00a9z\u00c3\u00a9quel and Meyer, called <a href=\"http:\/\/archive.eiffel.com\/doc\/manuals\/technology\/contract\/ariane\/\"><em>Design by Contract: The Lessons of Ariane<\/em><\/a>.<\/p>\n<p>I listened to a lecture by Bertrand Meyer (one of the authors) on this subject about eleven years ago. It made me mad; he was making ill-thought through claims that if the Ariane 5 rocket project had been developed in his favourite language (Eiffel) and with his favourite development technique (Design By Contract), its first test flight would never have failed in the <a href-\"<a href=\"http:\/\/en.wikipedia.org\/wiki\/Ariane_5_Flight_501\" title=\"Wikipedia definition of Ariane_5_Flight_501\" class=\"wikipedia\">spectacular<\/a> way that it did.<\/p>\n<p>Talking to my colleagues at the time, I learnt that, allegedly, Meyer has quite a knack of  getting people riled with his half-cocked attacks. The trouble is that, amongst his weird claims, he occasionally shows some flashes of brilliance, so it is hard to discount him entirely.<\/p>\n<p>I support many of his ideas about Design By Contract. I wish there was better support for Post Conditions tests in the programming languages I use.<\/p>\n<p>However, I have read (and listened) to many undeserved attacks by him on various innocent technologies and their proponents.<\/p>\n<p>After seeing that he was still being quoted on Ariane 5, I started to think about writing an article demonstrating the fallacies in the argument. (Bottom line: Developers would have (only) found the bug if the right unit testing was performed, or the right static analysis was done &#8211; independent of the language choice. No language choice would have prevented mission failure when the bug surfaced at run-time.)<\/p>\n<p>However, upon re-reading the article, I find that at the bottom they write:<\/p>\n<blockquote><p>For a different view of the issue (written in response to the IEEE Computer article) see <a href=\"http:\/\/www.flash.net\/~kennieg\/ariane.html#s3.1.5\">Ken Garlington<\/a>&#8216;s paper. Although we disagree with Mr. Garlington&#8217;s analysis, as expressed in Usenet discussions, we feel it is part of this site&#8217;s duty to its readers to give them access to contrarian views, letting them make them make up their own minds, for the greater benefit of software quality.<\/p><\/blockquote>\n<p>That was very big of them to reference this. Garlington seems to have done more research than I probably would have, so he has outperformed the effort that I would have done, and saved me the effort of writing it myself. <\/p>\n<p>Thanks!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I listened to a lecture by Bertrand Meyer on the subject of Ariane 5 about eleven years ago. It made me mad.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_s2mail":"","footnotes":""},"categories":[24,29,34],"tags":[139,141,135,138,137,134,140],"class_list":["post-436","post","type-post","status-publish","format-standard","hentry","category-cathartic-rant","category-influencing-others","category-software-development","tag-ada","tag-computer-science","tag-debate","tag-eiffel","tag-fallacy","tag-logic","tag-meyer"],"_links":{"self":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts\/436","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/comments?post=436"}],"version-history":[{"count":0,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/posts\/436\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/media?parent=436"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/categories?post=436"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.somethinkodd.com\/oddthinking\/wp-json\/wp\/v2\/tags?post=436"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}