Idea for a novel interface:
Start with our planned document editing mechanism for Xanadu, wherein any text typed gets appended to a (visible) permascroll — however, autocomplete/search based on the corpus of all resident text, showing matches with some context below.
Click moves cursor, drag on unselected text selects it, drag from selected text to selected text creates a link (and brings up link options with some reasonable defaults), drag from selected text to unselected text inserts the transclusion. All xanadu editing logic so far.
Middle click on selected text treats it as a command (like plan9 & oberon) — output (if any) goes into the permascroll (like oberon), and if a widget is drawn, it visually replaces the selected text in the document (like with excel or the canon cat).
Middle click on unselected text selects with split along word boundaries before treating as a command, much like with plan9’s ‘plumb’. Middle-click drag between two widgets or pieces of selected code creates an “application link” that works like IPC, shows a list of endpoints and prompts you to write some code to route data or trigger automation between them, again as a document. In other words, like Smalltalk.
Preferred language: Something like Io (minimal message-passing with a prototype object system and little syntax and duck or structural typing) with a carat sigil (like in MUMPS) for indicating that a variable should be global and persistent.