IDE/UIs for multiple dispatch?

Subtext was (I think) going to give us a UI for dealing with the complexities of conditional logic. Whenever I read about more-than-single-dispatch, a spreadsheet UI comes to mind. Nice to know others have thought of it, and also complained about it. From Object-Oriented Multi-Methods [pdf] in Cecil, 1992:

Hebel and Johnson developed a special browser to manage the highly-stylized double dispatching code for arithmetic over numbers and matrices in Smalltalk-80 [Hebel & Johnson 90]. Their browser presents a two-dimensional spreadsheet-like view of all combinations of numeric and matrix argument types for a particular arithmetic message, with each entry reporting whether the corresponding argument type combination defines a method or merely inherits one from either the receiver inheritance chain or the argument inheritance chain. Programmers can manipulate implementations of arithmetic messages through the interface provided by the browser, and it will in turn generate many of the double dispatching functions automatically. While this browser makes double dispatching more manageable, it does not completely solve the problems with double dispatching. Users who examine numeric classes through the normal Smalltalk-80 browser still are confronted with a large number of (automatically-generated) dispatching routines. Additional browsers would be required for other kinds of messages (such as the displayOn message) to receive the same sorts of benefits. In effect, their browser partially simulates the functionality of multiple dispatching in the programming environment; we argue instead for uniform language support of multiple dispatching. Nevertheless, their interface might be useful even for a multiple-dispatching language such as Cecil to help display and organize multi-methods.

Is anybody these days working on some UI avalon panacea along these lines per chance?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Slate was meant to

Slate's prototypes with multiple dispatch system has the introspection APIs for an IDE, and aimed to provide a Smalltalk-style browser. We had a prototype working in Gtk where the methods were mixed together but you could filter them by position of argument that the type played (is it dispatched in the first, second, third position or combination?).


you make it sound like such a dead project ;-) is that true? git says there were some checkins in 2012, at least...


I have intended to re-invent it for a few years (dropping most Self-inherited design mistakes and re-thinking the entire environment idea to be less burdensome). Actually I'm in the Bay Area this week to discuss some specific ideas for it for the next year. Hopefully I can form a coherent Strange Loop talk proposal in time.