{"id":353,"date":"2007-03-20T09:29:49","date_gmt":"2007-03-20T09:29:49","guid":{"rendered":"http:\/\/scientopia.org\/blogs\/goodmath\/2007\/03\/20\/sad-news-john-backus-has-died\/"},"modified":"2007-03-20T09:29:49","modified_gmt":"2007-03-20T09:29:49","slug":"sad-news-john-backus-has-died","status":"publish","type":"post","link":"http:\/\/www.goodmath.org\/blog\/2007\/03\/20\/sad-news-john-backus-has-died\/","title":{"rendered":"Sad News: John Backus has died."},"content":{"rendered":"<p> I just heard that <a href=\"http:\/\/www.nytimes.com\/2007\/03\/19\/obituaries\/20cnd-backus.html?ex=1332043200&amp;en=adde3ee5a1875330&amp;ei=5124&amp;partner=permalink&amp;exprod=permalink\">John Backus died last saturday.<\/a><\/p>\n<p> John Backus was one of the most influential people in the development of what we now know as software engineering. In the early days of his career, there was no such thing as a programming language: there was just the raw machine language of the hardware. Backus was the first person<br \/>\nto come up with the idea of designing a <em>different<\/em> language, one which was easier for<br \/>\nhumans to read and write than machine code, and having the machine do the translation.<\/p>\n<p><!--more--><\/p>\n<p> For those of us in the field today, the idea of <em>not<\/em> having a human-readable language is almost unimaginable. But in the days when Backus got started, the idea was not just revolutionary &#8211; it was downright controversial. Even just using what we would call an assembler today was considered a bad idea by many programmers of the time.<\/p>\n<p> Just to give you a sense of what that means: An assembler is a tool that lets<br \/>\nyou write programs in the basic instructions of the machine; only instead of having to write the instructions in numeric forms, they&#8217;d let you write them as words &#8211; it&#8217;s the difference between<br \/>\nwriting something like &#8220;2E 03 F1 79&#8221; and &#8220;ADD R3, (A1)+9&#8221;. Many of the early programmers believed that writing the latter form was harmful &#8211; because when you&#8217;re writing in non-numeric form, you<br \/>\naren&#8217;t as aware of some details like exactly how the instructions are aligning in memory. So<br \/>\nthe idea of moving even farther away from the machine code, so that you didn&#8217;t even know<br \/>\nexactly what sequence of instructions your code would be translated into was considered<br \/>\nabsolutely crazy.<\/p>\n<p> But Backus beat the so-called common wisdom of the time. He and his team developed<br \/>\nFortran, and showed that not only did the compiler <em>match<\/em> the performance of<br \/>\nhand-written code for most systems, but it often <em>beat<\/em> the performance of hand-written code for anything but extremely small hand-optimized code segments; and it created a dramatic<br \/>\nimprovement in productivity: programmers could get their work done much more quickly, with<br \/>\nfewer bugs, by writing in a higher level language.<\/p>\n<p> Just designing the first programming language ever wasn&#8217;t enough for John Backus. Once the first Fortran compiler hit the world, he led his team into the area of figuring out how to describe and process programming languages. With Peter Naur, he developed what we now call BNF grammars &#8211; that is, Backus-Naur Form grammars, which are a formal tool for describing the syntactic structure of a programming languages; and he and his team worked out how to use those grammars as a guide to<br \/>\nthe translation of code from the human readable syntax of languages like Fortran and Cobol to the<br \/>\npure binary used by the machine.<\/p>\n<p> In later years, Backus devoted his time to trying to build better languages for expressing<br \/>\nprograms. He became an outspoken advocate for the idea of functional programming, designing his own<br \/>\nlanguage and programming called <a href=\"http:\/\/www.stanford.edu\/class\/cs242\/readings\/backus.pdf\">FP<\/a>. FP was never a huge success,<br \/>\nbut there are still a few people working on FP-derived languages, and they&#8217;re a very interesting<br \/>\nidea. I&#8217;ll probably write a little something about FP later this week.<\/p>\n<p> John Backus won the Turing award in 1977, and used his Turing Award lecture as an opportunity to push the idea of non-imperative programming. The written article that accompanied his lecture remains one of the classic documents describing why people should look at functional and non-imperative programming languages.<\/p>\n<p> Backus is also the guy who hired Fran Allen, this years Turing Award winner.<\/p>\n<p> I never met him, which is something I&#8217;ll always be disappointed about. I&#8217;ve known quite a few people who worked for him, but I&#8217;m too young to have had the opportunity meet him.<\/p>\n<p> Backus will be remembered in the Computer Science community. His name ranks with some of the true greats &#8211; I would go so far as to include him in a list with people like John von Neumann and Alan Turing as the greatest influences on the development of computer science as a discipline.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I just heard that John Backus died last saturday. John Backus was one of the most influential people in the development of what we now know as software engineering. In the early days of his career, there was no such thing as a programming language: there was just the raw machine language of the hardware. [&hellip;]<\/p>\n","protected":false},"author":1,"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":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[46],"tags":[],"class_list":["post-353","post","type-post","status-publish","format-standard","hentry","category-people"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p4lzZS-5H","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/posts\/353","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/comments?post=353"}],"version-history":[{"count":0,"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/posts\/353\/revisions"}],"wp:attachment":[{"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/media?parent=353"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/categories?post=353"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.goodmath.org\/blog\/wp-json\/wp\/v2\/tags?post=353"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}