{"id":17,"date":"2005-05-23T10:52:36","date_gmt":"2005-05-23T15:52:36","guid":{"rendered":"http:\/\/alarmingdevelopment.org\/?p=17"},"modified":"2005-05-23T11:05:27","modified_gmt":"2005-05-23T16:05:27","slug":"some-assembly-required","status":"publish","type":"post","link":"https:\/\/alarmingdevelopment.org\/?p=17","title":{"rendered":"No Assembly Required"},"content":{"rendered":"<p>Building a toy for my children suggested an analogy with programming. Many toys come knocked down, requiring assembly, with instructions of the form &#8220;insert peg A into hole A, slide tab B into slot B, &#8230;&#8221;. This is just like the way we use names in programming languages, indicating parts that need to be attached by labelling them with the same name. The function call A is to be attached to the function definition A. Programming with names is like creating a program as a big pile of pieces with labels attached, and leaving it to the compiler\/interpreter to assemble the pieces into something that works. Textual programs are knocked down. <\/p>\n<p>The problem is that this approach boggles the mind when used with thousands or even millions of pieces.  Modern IDE&#8217;s like Eclipse strive valiantly to help us imagine how things will plug together, but this is an impossible task. Even my kids know that all the King&#8217;s horses and all the King&#8217;s men can&#8217;t put Humpty together again.<\/p>\n<p>The goal of Subtext is to fabricate programs as working wholes. No assembly required.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Building a toy for my children suggested an analogy with programming. Many toys come knocked down, requiring assembly, with instructions of the form &#8220;insert peg A into hole A, slide tab B into slot B, &#8230;&#8221;. This is just like the way we use names in programming languages, indicating parts that need to be attached &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/alarmingdevelopment.org\/?p=17\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;No Assembly Required&#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_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":""},"categories":[1],"tags":[],"class_list":["post-17","post","type-post","status-publish","format-standard","hentry","category-general"],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pfEnU-h","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=\/wp\/v2\/posts\/17","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=17"}],"version-history":[{"count":0,"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=\/wp\/v2\/posts\/17\/revisions"}],"wp:attachment":[{"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=17"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=17"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}