Subtext, revisited

Almost four years ago I took a look at Subtext, an unusual programming “language”. Today I stumbled upon it again. Development has continued, and while I don’t see this appearing on worker bee’s desktops anytime soon, it’s definitely worth another look.

As you can tell from the updated video, programming is done by creating and manipulating “schematic tables”… sort of a crossover between a flowchart and a spreadsheet. (Do watch that video… it’s hard to explain the essence of Subtext in just a few words. You have to *see* it.)

It moves away from the assumption that “a program == text”. Or, as the author puts it, “Much of the design of our programming language is an artifact of the linear nature of text.”

While the new approach is interesting and makes for a whole new way of writing programs, I’m not sure how well it would hold up when dealing with more complex programming problems. (The examples mentioned in the video are fairly simple… fibonacci and an algorithm to calculate damage in an RPG-like game.) Also, it seems to rely heavily on the mouse, while the general trend in programming editors and IDEs seems to be, to use the keyboard as much as possible.

Subtext is capable of doing some pretty nifty things… like pointing out gaps or contradictions in your logic. (Again, see the video.)

I’m also curious how easy it is to define custom abstractions with Subtext, as is common in more expressive programming languages.

I haven’t made up my mind yet if this way of programming is easier or harder than the “conventional” way… The difference in layout (a table with different columns rather than a class hierarchy, for instance) makes some things easier to see and grasp. But again, I don’t know how well this scales to more complex algorithms. In any case, it’s different.

Now, when will this be available for download? I want to play with it. :-)

6 Comments

  1. Chris Done said,

    December 26, 2008 @ 1:52 pm

    “Also, it seems to rely heavily on the mouse, while the general trend in programming editors and IDEs seems to be, to use the keyboard as much as possible.”

    I’m pretty sure the mouse is just the author’s preference. As many have said, one could easily provide a purely keyboard-controlled interface.

  2. Not Chris said,

    December 26, 2008 @ 2:08 pm

    The Subtext FAQ says “Subtext 2 has been designed to be much less mouse-centric than the prior version. Although not yet implemented, it should be possible to do everything from the keyboard.”

  3. Dave Ray said,

    December 26, 2008 @ 2:14 pm

    For what it’s worth, Jonathan Edwards (the author of Subtext) grudgingly released the source code a little while ago on his blog: http://alarmingdevelopment.org/?p=160

  4. Michiel Trimpe said,

    December 26, 2008 @ 3:04 pm

    I read the paper on which this language is based a while ago and I personally believe that this needn’t be an all-encompassing language, but is best suited as a plugin into existing languages where needed.

    Several applications I’ve written had pieces of functionality that could have been “written” far more expressively and be far more self-explanatory when using a “language” like this.

  5. Jesse McNelis said,

    December 26, 2008 @ 11:44 pm

    I blogged about this a long while back. The RPG game example given is easily refactored to be easier to read with out the need for subtext.
    http://blog.jessta.id.au/2007/12/subtext-is-research-project-in-creating.html

    Imagine the RPG example with a switch statement of 20 options, it would be ridiculous in subtext and very difficult to read.

    The flexibility of text is very useful in allowing the programmer to represent the particular logic in a way that makes it easier to read for a specific problem. But the idea of having programming involve less text and more manipulation of data structures is an interesting idea, but this implementation is terrible.

    - Jesse McNelis

  6. I Write » Subtext said,

    December 27, 2008 @ 4:51 pm

    [...] someone posted this link on programming reddit where someone had posted a link to the the page where Jonathan Edwards [...]

RSS feed for comments on this post