Semantic Chorded IDE

Program source code files are a strange beast, they are treated as text files but inside contain trees of well-formed syntactic programs. Yet, source control systems treat them as text files, with lines being added and deleted as if they were a poem or a cooking recipe (notable exceptions have been proposed in the literature, take a look at the now defunct Stellation project).

Now, typing programs take time, it involves a lot of repetitive tasks and it is error prone. At the level of mental structures, I can only speak for myself but I build mental images of the code I'm writing and it is at a much more abstract level than "lines of program text code". There are bits and pieces of syntactic trees. A nested for-loop with an early escape condition. A method that changes a private variable. And so forth so on.

Modern IDEs contain code patterns that can be inserted with keyword acceleration shortcuts. This idea is to build a IDE that allows that with multi-key strokes (chorded keystrokes, similar to play guitar, popularized by wearable interface keyboards like the twiddler). Programming then becomes a matter of choosing the different subtrees to integrate to the syntactic tree being created (with operations such as tree-adjoining).

Moreover, as different projects need different subtrees, these trees can be mined from existing code, in a way similar to mining secondary structures in genomics).

Programming modifying trees explicitly should be much faster and less error-prone, and similar to other syntax-aware editors.