{"id":2684,"date":"2009-12-03T18:35:05","date_gmt":"2009-12-03T23:35:05","guid":{"rendered":"http:\/\/blog.kenperlin.com\/?p=2684"},"modified":"2009-12-03T18:35:05","modified_gmt":"2009-12-03T23:35:05","slug":"programming-without-math-part-2","status":"publish","type":"post","link":"http:\/\/blog.kenperlin.com\/?p=2684","title":{"rendered":"Programming without math, part 2"},"content":{"rendered":"<p>Continuing the thread from yesterday&#8230;<\/p>\n<p>There is a reason that programming necessarily started out being very math-centered.  It had no choice.  Back in the 1950s when FORTRAN (essentially the first high level programming language) burst upon the scene, there was no interactive graphics, virtual reality, or real-time graphics acceleration.  There were no high resolution LCD monitors and there certainly was no computer mouse.  The very idea of interacting with &#8220;objects&#8221; in real-time on a computer screen &#8211; or any nascent glimmering of such an idea &#8211; was still the stuff of science fiction.<\/p>\n<p>In such a world, math became central to programming because math is the great recourse when all else fails.  You may not be able to see a world, to touch it or sense it, but you can indeed use mathematics to describe it.  In the absence of being able to see, say, a round spherical ball on my computer screen, I can always type in the mathematical description of a sphere, and use that description to help me program my computer to make the ball roll, or bounce, or do anything else.<\/p>\n<p>This was the world faced by the early computer programmers.  They were literally working blind.  All they had were their mathematical descriptions of things, and so naturally computer programming grew around that central, highly empowering way to describe everything.  It&#8217;s no wonder that the concepts and methods of mathematical description became deeply embedded into the DNA of programming culture and practice.<\/p>\n<p>Even something as seemingly fundamental to programmers as the &#8220;=&#8221; assignment operator is a math concept, not a programming concept.  It basically says &#8220;give this thing a new identity.&#8221;  In the real world, we rarely do such a thing.  Rather, we impart new properties to things that already exist.  We paint a wall, or we drive ourselves to work, or we make another person smile.  Yet we take it for granted that programmers are supposed to write things like &#8220;a = b&#8221;, because we are so used to seeing the math embedded in the programming that we forget it&#8217;s math, not programming.<\/p>\n<p>Programming without math would be much more likely to have operations like &#8220;make John smile&#8221;, or &#8220;drive to work&#8221; than such an abstraction as &#8220;a = b&#8221;.  And that would make it much more interesting to a lot more people.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Continuing the thread from yesterday&#8230; There is a reason that programming necessarily started out being very math-centered. It had no choice. Back in the 1950s when FORTRAN (essentially the first high level programming language) burst upon the scene, there was no interactive graphics, virtual reality, or real-time graphics acceleration. There were no high resolution LCD &hellip; <a href=\"http:\/\/blog.kenperlin.com\/?p=2684\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Programming without math, part 2&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/2684"}],"collection":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2684"}],"version-history":[{"count":1,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/2684\/revisions"}],"predecessor-version":[{"id":2685,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=\/wp\/v2\/posts\/2684\/revisions\/2685"}],"wp:attachment":[{"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2684"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2684"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.kenperlin.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2684"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}