{"id":229,"date":"2009-04-28T11:15:26","date_gmt":"2009-04-28T16:15:26","guid":{"rendered":"http:\/\/alarmingdevelopment.org\/?p=229"},"modified":"2009-04-28T11:15:26","modified_gmt":"2009-04-28T16:15:26","slug":"steps-toward-the-reinvention-of-programming","status":"publish","type":"post","link":"https:\/\/alarmingdevelopment.org\/?p=229","title":{"rendered":"Steps Toward the Reinvention of Programming"},"content":{"rendered":"<p>Time for some mental Spring cleaning. This is the first of several reviews I plan to do on interesting current research. First up is Alan Kay&#8217;s <a href=\"http:\/\/vpri.org\">Viewpoints Research Institute<\/a>. As the title states, he wants to reinvent programming. Again. The guiding goal of the project is to recreate the &#8220;personal computing experience&#8221; &#8211; from OS to apps &#8211; using dramatically fewer lines of code. They are looking for a &#8220;Moore&#8217;s Law&#8221; leap in software expressiveness of 3 or 4 orders of magnitude. <!--more--><\/p>\n<p>Their work so far is mostly a series of DSL experiments demonstrating impressively small line counts, for example TCP\/IP in 200 lines. The basis for these DSL&#8217;s is the OMeta parsing language. It is built on top of Cola, which is a sort of cross between Scheme and Smalltalk. It is small and elegant like Scheme, and has message-passing semantics, and meta-messages for dynamically adaptable semantics. OMeta is a generalization of Parsing Expression Grammars to work over Cola datatypes, and with semantic actions written in Cola. Cola&#8217;s dynamic semantics allow OMeta grammars to often function as interpreters. <\/p>\n<p>This is all very cute, but as they freely admit, they haven&#8217;t yet figured out how to pull these little DSL&#8217;s  together to build large systems. What is needed, I think, is some new kind of <em>modularity<\/em>. There are some speculations about modularity in their <a href=\"http:\/\/www.vpri.org\/pdf\/tr2007008_steps.pdf\">progress report<\/a>. Modules might be like &#8220;particles in a field&#8221;. Or modules might be like biological cells, that &#8220;notice&#8221; their environment and know how to respond. It is said that modules should carry a model of their environment. I look forward to seeing what they come up with on this central problem.<\/p>\n<p>Overall, I have to say that I am full of admiration for Alan Kay and all the VPRI people. They are trying to do the right thing. They have a 5-year grant from the NSF, so they will get the chance to do something. This is what Computer Science should be. But isn&#8217;t. The sad fact is that their grant was gotten outside the peer-review process. It helps to have a Turing award. This research would never be funded in the normal manner. It simply doesn&#8217;t qualify as Computer Science by today&#8217;s standards. All the worse for Computer Science.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Time for some mental Spring cleaning. This is the first of several reviews I plan to do on interesting current research. First up is Alan Kay&#8217;s Viewpoints Research Institute. As the title states, he wants to reinvent programming. Again. The guiding goal of the project is to recreate the &#8220;personal computing experience&#8221; &#8211; from OS &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/alarmingdevelopment.org\/?p=229\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Steps Toward the Reinvention of Programming&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[4],"tags":[],"class_list":["post-229","post","type-post","status-publish","format-standard","hentry","category-reviews"],"jetpack_shortlink":"https:\/\/wp.me\/pfEnU-3H","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=\/wp\/v2\/posts\/229","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=229"}],"version-history":[{"count":2,"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=\/wp\/v2\/posts\/229\/revisions"}],"predecessor-version":[{"id":231,"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=\/wp\/v2\/posts\/229\/revisions\/231"}],"wp:attachment":[{"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=229"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}