{"id":10828,"date":"2024-03-25T08:39:07","date_gmt":"2024-03-25T15:39:07","guid":{"rendered":"https:\/\/mattfife.com\/?p=10828"},"modified":"2024-03-25T09:57:36","modified_gmt":"2024-03-25T16:57:36","slug":"admitting-your-mistakes","status":"publish","type":"post","link":"https:\/\/mattfife.com\/?p=10828","title":{"rendered":"Admitting your mistakes"},"content":{"rendered":"\n<p><a href=\"https:\/\/www.infoq.com\/presentations\/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare\/\" data-type=\"link\" data-id=\"https:\/\/www.infoq.com\/presentations\/Null-References-The-Billion-Dollar-Mistake-Tony-Hoare\/\">Speaking at QCon<\/a> back in 2009, <a href=\"https:\/\/en.wikipedia.org\/wiki\/Tony_Hoare#cite_note-27\" data-type=\"link\" data-id=\"https:\/\/en.wikipedia.org\/wiki\/Tony_Hoare#cite_note-27\">Tony Hoare<\/a> admitted to probably one of the biggest mistakes of his career &#8211; one that every programmer knows all too well. The invention of NULL because &#8216;it was so easy to implement&#8217;.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>I call it my billion-dollar mistake. It was the invention of the null reference in 1965. <\/p>\n\n\n\n<p>At that time, I was designing the first comprehensive type system for references in an object oriented language (<a href=\"https:\/\/en.wikipedia.org\/wiki\/ALGOL_W\">ALGOL W<\/a>). My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn&#8217;t resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years.<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Speaking at QCon back in 2009, Tony Hoare admitted to probably one of the biggest mistakes of his career &#8211; one that every programmer knows all too well. The invention of NULL because &#8216;it was so easy to implement&#8217;. I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object oriented language (ALGOL W). My goal was to ensure&#8230;<\/p>\n<p class=\"read-more\"><a class=\"btn btn-default\" href=\"https:\/\/mattfife.com\/?p=10828\"> Read More<span class=\"screen-reader-text\">  Read More<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[9,7],"tags":[],"class_list":["post-10828","post","type-post","status-publish","format-standard","hentry","category-cool","category-technicalprogramming"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p4WECr-2OE","jetpack-related-posts":[],"_links":{"self":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts\/10828","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=10828"}],"version-history":[{"count":3,"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts\/10828\/revisions"}],"predecessor-version":[{"id":11002,"href":"https:\/\/mattfife.com\/index.php?rest_route=\/wp\/v2\/posts\/10828\/revisions\/11002"}],"wp:attachment":[{"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=10828"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=10828"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mattfife.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=10828"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}