{"id":34,"date":"2005-10-25T09:32:46","date_gmt":"2005-10-25T14:32:46","guid":{"rendered":"http:\/\/alarmingdevelopment.org\/?p=34"},"modified":"2005-10-25T09:43:29","modified_gmt":"2005-10-25T14:43:29","slug":"oopsla-report","status":"publish","type":"post","link":"https:\/\/alarmingdevelopment.org\/?p=34","title":{"rendered":"OOPSLA report"},"content":{"rendered":"<p>OOPSLA was great. I got a lot of positive comments and encouragement. It was quite heady to have established researchers, whose work I respect, introduce themselves and tell me that they liked my work. Perhaps a bit too heady: it wasn\u00e2\u20ac\u2122t until the last day of the conference that I realized I should be using the opportunity to seek criticism and advice from the masters.<!--more--><\/p>\n<p>I got feedback in six areas:<\/p>\n<ol>\n<li>Generalize the model from functional programming to logic\/constraint programming. This fairly begs to be done, since the \u00e2\u20ac\u0153syntax\u00e2\u20ac\u009d is already much like a set of clauses or equations. However my intuition is that I should more fully understand the consequences of simple functional computation before exploring in another direction. Logic and constraints might be a good subject for a future collaboration with someone who knows that world better.\n<\/li>\n<li>Elaborate the model of time to include transactional concurrency. This is my favorite. If I can introduce a merge primitive into the model, concurrency and transactions may fall out quite nicely. This whole area of research is quite hot at the moment, and I might be able to produce a theoretically novel result. That would give me some cred with the \u00e2\u20ac\u0153real\u00e2\u20ac\u009d Computer Scientists. The merge primitive is also at the heart of many other ideas I want to explore, and I have already failed once to implement it, so I really want to nail it.<\/li>\n<li>Develop a clear description of the underlying model. Some say it should be in Greek, some say English. The merge primitive will at the least complicate matters, and perhaps require wholesale revision. My current feeling is that I should quickly produce an informal description of the current non-merging model, and then try to recruit a theorist to collaborate on a more formal treatment.<\/li>\n<li>Modularity and polymorphism. At the end of my talk, Dave Ungar asked (after some nice praise) whether my elimination of names would also eliminate important features like polymorphism. I could only lamely acknowledge that I needed to come up with an answer to his question. The way I see it, I am recapitulating the evolution of programming languages, and have only worked my way up to about 1960. Modularity and polymorphism are from the 70\u00e2\u20ac\u2122s and 80\u00e2\u20ac\u2122s respectively. These ideas evolved in response to the alarming growth in code size and complexity back then. I think it would be foolhardy for me to speculate about scalability mechanisms before I have any actual experience with doing large-scale programming in Subtext. The best way to get such experience is to build something that is actually useful. Cue next issue\u00e2\u20ac\u00a6<\/li>\n<li>Find an application niche where Subtext could quickly become useful to real people. A number of people suggested games. Ward Cunningham made an intriguing suggestion: use Subtext as a tool for generating <a href=\"http:\/\/en.wikipedia.org\/wiki\/Mashup_%28web_application_hybrid%29\">mashups<\/a>. A mashup is a patchwork of web resources and services repurposed for a new application. Very web 2.0. If you don\u00e2\u20ac\u2122t know what that is, then you aren\u00e2\u20ac\u2122t cool enough to be reading this blog :-). This may be a crazy idea, but some of Ward\u00e2\u20ac\u2122s crazy ideas have been extremely influential, so I am going to take it seriously.<\/li>\n<li>Improve the user interface. The most surprising (and hence valuable) feedback I got was that people find my user interface unintelligible. Of course that shouldn\u00e2\u20ac\u2122t come as a surprise: the canonical blind spot of all developers is being unable to see through the eyes of their users. I guess I got carried away with the flush of success from inventing a UI that works at all. The current UI is really just an existence proof that something like Subtext is possible. I have to go back to the UI drawing board to get from possibility to desireability.<\/li>\n<\/ol>\n<p>Overall, this OOPSLA was a giant milestone for my research. I am greatly thankful for the Onward track. No other venue would touch this kind of wildly speculative work. The Onward community has not only let me speak, but seemingly gone out of their way to give me encouragement (or is it incitement?).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>OOPSLA was great. I got a lot of positive comments and encouragement. It was quite heady to have established researchers, whose work I respect, introduce themselves and tell me that they liked my work. Perhaps a bit too heady: it wasn\u00e2\u20ac\u2122t until the last day of the conference that I realized I should be using &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/alarmingdevelopment.org\/?p=34\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;OOPSLA report&#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":[1],"tags":[],"class_list":["post-34","post","type-post","status-publish","format-standard","hentry","category-general"],"jetpack_shortlink":"https:\/\/wp.me\/pfEnU-y","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=\/wp\/v2\/posts\/34","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=34"}],"version-history":[{"count":0,"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=\/wp\/v2\/posts\/34\/revisions"}],"wp:attachment":[{"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=34"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=34"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/alarmingdevelopment.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=34"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}