{"id":96,"date":"2008-08-21T10:52:29","date_gmt":"2008-08-21T15:52:29","guid":{"rendered":"http:\/\/alarmingdevelopment.org\/?p=96"},"modified":"2008-08-21T10:52:29","modified_gmt":"2008-08-21T15:52:29","slug":"whats-next","status":"publish","type":"post","link":"https:\/\/alarmingdevelopment.org\/?p=96","title":{"rendered":"What&#8217;s next?"},"content":{"rendered":"<p>Since my last paper was rejected I have been thinking about what to do next. To tell the truth, by the time I had finished that paper I had lost interest in the topic. It seems that for the last few years I have been lurching around in different directions. Here are some of my thoughts about a new strategy. Please let me know what you think. <!--more--><\/p>\n<p><strong>Semantics instead of syntax<\/strong><\/p>\n<p>I have been focusing on non-textual programming. The name Subtext itself headlines that issue. I have demonstrated small-scale examples of how a non-textual language can make programming fundamentally easier. This just isn&#8217;t selling, for a number of reasons.<\/p>\n<p>First of all, I get tarred with the past failures of visual programming. Small-scale examples are not convincing. More fundamentally, people just don&#8217;t want to admit that they aren&#8217;t smart enough. They are willing to admit that non-textual programming might help novices, but <em>they<\/em> don&#8217;t need it. And no one wants to write off their years of training in textual programming.<\/p>\n<p>I need to change focus from syntax to semantics. I have to show how a new kind of programming language can offer higher-level concepts that make building certain kinds of systems dramatically simpler. Non-textuality might be acceptable as a requirement of those semantic benefits. Non-textuality can only win by hiding in a Trojan Horse.<\/p>\n<p>One starting point is the model of hypothetical functional state that I <a href=\"http:\/\/subtextual.org\/demo1.html\">demo&#8217;d<\/a> at OOPSLA05. To make the idea more approachable, I should use a normal textual language if possible, even if only as a pedagogical aid.  I may have to drop the name Subtext.<\/p>\n<p><strong>Top-down instead of bottom-up<\/strong><\/p>\n<p>The proper scientific method is to study special situations in which a new idea can be evaluated in isolation and detail. I tried that in my last paper, and it didn&#8217;t go over at all. Radical new ideas must first be strongly justified in order to be taken seriously. I need to take on a really big practical problem using a mix of new ideas. If the result demonstrates clear benefits to practicing programmers, that might provide sufficient motivation for the scientific process of isolating, evaluating, and refining the ideas. I strongly believe that such a communal refinement process is crucial, and that its lack is why so many of our languages, tools, and standards are half-baked.<\/p>\n<p>The obvious domain to take on is web application frameworks. Basically what Macneil suggested some time ago: Subtext on Rails. Such web apps are really just the latest incarnation of the archetypal UI-to-a-DB application. I have repeatedly tried working on this domain, and repeatedly backed off because it is just so big, and so complicated by half-baked standards. But I have been making progress in little bits, and maybe have now gotten within striking distance.<\/p>\n<p><strong>Design instead of implementation<\/strong><\/p>\n<p>Subtext, or whatever it is called, will not have competitive performance any time soon. I need to position it as a modeling\/specification\/prototyping language. The big win comes from allowing a web app to be fully specified in a high-level declarative fashion without imperative semantics: no methods or events; and WYSIWYG live execution. A fully working prototype would be of great value even if it can&#8217;t scale into production. It could be used as as FIT-like specification tool, as an oracle for testing a production implementation, and as the source for transformations into production implementations.<\/p>\n<p><strong>Presentation; prototype; paper<\/strong><\/p>\n<p>My work flow has been to write a paper about an idea, prototype an implementation of it, and then present it. It might be easier to do it in the reverse order.<\/p>\n<p>Comments?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Since my last paper was rejected I have been thinking about what to do next. To tell the truth, by the time I had finished that paper I had lost interest in the topic. It seems that for the last few years I have been lurching around in different directions. Here are some of my &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/alarmingdevelopment.org\/?p=96\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;What&#8217;s next?&#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_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1],"tags":[],"class_list":["post-96","post","type-post","status-publish","format-standard","hentry","category-general"],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/pfEnU-1y","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=\/wp\/v2\/posts\/96","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=96"}],"version-history":[{"count":21,"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=\/wp\/v2\/posts\/96\/revisions"}],"predecessor-version":[{"id":158,"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=\/wp\/v2\/posts\/96\/revisions\/158"}],"wp:attachment":[{"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=96"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=96"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=96"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}