Illustrative Programming

Martin Fowler has a new post in which he coins the term Illustrative Programming for what I have been calling Example Centric Programming. He gives me a nice plug too. Martin is a keen observer of trends in programming, and his terminological inventions have had an enormous influence on the practice of patterns, refactoring, and now DSL’s. I see his latest neologism as an indicator of the increasing relevance of the idea.

Posted in General | 4 Comments

Wagn

Check it out. Cross between a Wiki and a database. And a semantic database at that, where all fields/attributes are binary associations. See plus cards and formatting. Very cute. Has an embedded query language, using JSON syntax. Needs an embedded update language.

Posted in General | 3 Comments

Repenting Syntax

Forgive me, for I have sinned. I have been seduced by Syntax — by its offer of quick implementation shortcuts, and by its promise of easy acceptance into the establishment. All lies, leading to perdition! I cast you out, Syntax! Read More »

Posted in General | 28 Comments

Semi-rejection

Onward has rejected my paper, but invites me to cut it in half and resubmit it. I feel like withdrawing the paper, but will probably swallow my pride. Read More »

Posted in General | 12 Comments

Wave reflections

Google Wave is huge. I am not even going to try to assess it dispassionately. As I explained in my last post, the same epiphany hit me just a few weeks ago, so I have already drunk the Kool-Aid. Basically: email is the original killer app of the Internet. We live in email, but email sucks. Wave fixes a lot of the suckage. I think it could become a platform for a whole new “wave” of applications. See for yourself. But Wave raises some big questions: Read More »

Posted in General, Reviews | 27 Comments

Curses, foiled again

For a long time I have been trying to come up with the “killer app” for my new programming paradigm. A few weeks ago I discovered it. As I thought it through, I started to panic, because I realized that it really was a killer app that didn’t need a new programming language. One could drop the fancy features and end-user programmability, and be left with something much simpler but with far greater impact: a replacement for email. Now that is a killer app. Should I shelve the research and do an open source project? Try to shoehorn my language in anyway? My head has been spinning. Well, Google just announced it today.

I am in shock. Going to take some time to digest this. Maybe it will turn out for the best: silence the siren call of commercialization, but still open up a niche for my language. Or maybe it is back to the drawing boards. Really only three weeks sunk at this point. What a trip.

Posted in General | 10 Comments

Steps Toward the Reinvention of Programming

Time for some mental Spring cleaning. This is the first of several reviews I plan to do on interesting current research. First up is Alan Kay’s Viewpoints Research Institute. As the title states, he wants to reinvent programming. Again. The guiding goal of the project is to recreate the “personal computing experience” – from OS to apps – using dramatically fewer lines of code. They are looking for a “Moore’s Law” leap in software expressiveness of 3 or 4 orders of magnitude. Read More »

Posted in Reviews | 4 Comments

The Summer of Code

The time has come to stop writing papers and start releasing code.
Read More »

Posted in Announcements, General | 14 Comments

Coherence — The Director’s Cut

The Coherence home page is up at http://coherence-lang.org. The submitted version of the paper is there, with a new intro and a surprise ending.

Posted in General | 11 Comments

What if Smalltalk were invented today?

To: Alan Kay
From: The Program Committee
Subject: FAIL

Dear Dr. Kay,

The program committee thanks you for the submission of your paper “Object Orientation – A New Paradigm of Programming”. Unfortunately your paper has been rejected. We had many fine submissions this year, but as you know we must accept no more than 15% of submissions to be considered a premier conference. The reviewers’ comments are attached below. Read More »

Posted in AgitProp, General | 33 Comments

Draft Onward paper

At long last, I have posted a draft of the paper I am submitting to Onward this year. Still pretty rough, but it is due a week from Monday, so I am pushing it out now to get feedback in time. Coherent Reaction. All comments welcome. What are the hard parts to understand? What is the related work?

As you can see, I have changed the name from Juncture to Coherence.

Thanks – Jonathan

Update: Submitted! Revised version at above link. Thanks for everyone’s help.

Posted in General | 14 Comments

Gradual Typing

Jeremy Siek is doing some great work on gradual typing, and it may get incorporated into Jython. Here is a presentation, and a video. A similar idea is Gilad Bracha’s Pluggable Types. JavaScript 2 had planned to do gradual typing, though it is unclear if that will survive the collapse of the project.

It seems I usually have negative things to say here, so I wanted to note an example of something positive. Jeremy’s work is Computer Science that is imminently relevant to practicing programmers. I think gradual types are an inevitable feature of future programming languages.

Posted in General | 2 Comments

JavaScript is good enough

For some time now people have been talking about web browsers as an application platform that supplants the PC. So called “Rich Internet Applications” use JavaScript or Flash or Silverlight to provide an attractive user interface (unlike HTML) close to that of traditional PC apps. JavaScript has been recently getting more attention because of some new VM’s that dramatically increase its performance (i.e., TraceMonkey, SquirrelFish, and V8). Dan Ingalls gave a talk at CUSEC about the Lively Kernel, which is a Smalltalk-style environment for JavaScript, running completely inside the browser. He was initially concerned that JavaScript is just a toy language, but in the end concluded that it is “good enough”. That prompted me to take a closer look. Read More »

Posted in General | 17 Comments

Observations of programmers in the wild

Just got back from CUSEC . I got an interesting view of the current state of the programmer subculture. It is much more social than in my day. There is a whole culture of meetups, *-camps, and little conferences. Ruby seems particularly cool right now. Almost everyone had a Mac. Doing open source counts a lot for street cred. Read More »

Posted in General | 26 Comments

Speaking at CUSEC

I have been invited to speak at CUSEC. Looks like a fun conference, and some of the other speakers are interesting, like Dan Ingalls and Avi Bryant. My talk is Iconoclasm for fun and profit. Abstract: Read More »

Posted in General | 6 Comments

At this juncture …

I have spoken before of the need to rebrand Subtext. It is stereotyped as a Visual Programming Language, and as such will never command respect. Using a non-textual code rep violates everyone’s expectations for how programming is done, and even how we write about it. The really fundamental problem is that I have been trying to solve problems that people don’t know they have, or won’t admit they have. No one is willing to admit they aren’t smart enough to program with current languages. Read More »

Posted in General | 40 Comments

Why Chrome is Shiny

Looking at the Google Web Toolkit, I have realized that Internet browsers are a dead end, much like MS-DOS was. GWT attempts to extract you from the tar pit of browser Javascript by papering over the incompatibilities and limitations. Some examples of these problems:
Read More »

Posted in General | 9 Comments

Truth in Researching

Just read a great paper about programming language design: The Origins of the BitC Programming Language. BitC wants to be a verifiable systems programming language, suitable for implementing OS kernels with provable safety guarantees and competitive performance. They share the lessons they have learned and opinions they have formed. They are commited to inventing something that is actually usable. It is all refreshingly honest and free of the obligatory posturing of academics, and therefore probably unpublishable. Some juicy quotes: Read More »

Posted in General | 2 Comments

Funny/sad quote of the day

From the folks who brought you UML: Semantics of a Foundational Subset for Executable UML Models

Constraints are excluded from fUML, because they are considered to be design‐time annotations that should already be satisfied by a well‐formed model. Otherwise, the general semantics of the run time checking of constraints is not currently well specified in UML 2, particularly when constraints should be evaluated and what should happen if they should fail. Further elaboration of the semantics of constraint checking in UML was judged to be outside the scope of the fUML specification.

Posted in General | 1 Comment

Alright already, here’s the source

Here is the source and binaries of the Schematic Tables demo. I really don’t think it is of use to anyone, but I am getting tired of explaining that. This stuff is on the shelf right now while I work on other language issues.

Posted in General | 12 Comments