Plan B

Subtext faces enormous obstacles to becoming an accepted programming language. It is still just a sketch, missing crucial pieces. But even as I slowly fill it out, I am encountering unyielding resistance. There is a great deal of skepticism about the whole idea of non-textual programming, due to the past failures of Visual Programming Languages. Overcoming that bad reputation will require proof that the UI and VM can scale to industrial-strength, and that there are unequivocal productivity benefits. I can’t do that alone, and it seems that I won’t get much help (particularly from the academic community) until I can first overcome the skepticism. Chicken and egg. Modern programming languages have dug a deep rut over the last 50 years, and dislodging them will not be easy. It will require finesse. Continue reading “Plan B”

First Class Copy & Paste

I have posted a draft of my latest OOPSLA submission: First Class Copy & Paste. As always, comments are welcome.

I apologize that this paper is so hard to read. It is very technical and formal, and all about internals, not the user interface. I felt that I needed to precisely define how Subtext works, both for myself, and for others who want to try to do something similar. A secondary goal was to document the idea of hypothetical computation that is in the demo. I also added a cool new idea: transactional concurrency. But few people will wade through the technicalities to get to that part. I probably should write a more accessible paper about hypotheticals and transactional concurrency.

The World Wide Dynabook

David Reed gave a keynote at OOPSLA about Croquet and TeaTime. Croquet is a re-imagining of Alan Kay’s seminal Dynabook vision, a vision which has influenced many aspects of modern computers and software. The Dynabook was a personal computing tool, while Croquet is envisioned to be a collaborative environment on the scale of the Web. I would call it “The World Wide Dynabook”. I applaud the grandness of the vision: reinventing how we interact with the internet, all the way from the end-user interface down to the network protocols and the programming language. I found the hints about their underlying architecture to be tantalizing, but unfortunately I got little more than hints, even after reading their publications. I will review what I have learnt so far. Continue reading “The World Wide Dynabook”

OOPSLA report

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’t until the last day of the conference that I realized I should be using the opportunity to seek criticism and advice from the masters. Continue reading “OOPSLA report”

Now Playing

I have produced a Flash video of my upcoming OOPSLA presentation. It is divided into two parts, both about 15 minutes long. The first part recapitulates the previous video of building a factorial function. There are some new features, but if you already watched the older video, you can skip it without missing much. The second part demonstrates my new approach to I/O and mutable state.

I am excited about this development, not only because it addresses a big problem lacking good solutions, but also because it is going beyond “mere” usability issues. It has been easy up till now to dismiss my work as just repackaging standard language semantics into a different user interface. Now I am starting to show that fundamentally changing the way we represent programs can fundamentally change the way we think about them.

As always, please let me know what you think.

[10/24/05: updated the slides at the very end to match what I actually presented at OOPSLA]