Internally, I’ve been toying with the idea of using Gingko as a Lisp editor. We’ve already tested exporting a Gingko tree to lisp (with parentheses inserted in the correct places), so the only thing missing is having more than three columns (the current limit).
I believe Gingko is a natural way to write Lisp, for the following reasons:
- Nesting is visual, rather than parenthetical. You no longer need to be a Lisp expert to “see past the parentheses”.
- One-to-one mapping. The tree maps directly into source, and can be mapped back. There is no ambiguity.
- Optional depth. For short forms and lists (such as (/ 1.0 sum) in the figure), it’s clearer to leave them as is. With Gingko, you can choose how much of the syntax to expressed using the tree structure, and how much to express with parentheses.
- Drag-and-Drop. It is now trivial to extract a deeply nested portion of code… just drag it out. Reordering of arguments, function extraction, all are much easier.
This is still a work in progress, and I am still a Lisp novice, so I would love to hear from more experienced Lispers: What do you think of this approach?
Let me know in the comments below.