[1] https://pcmonk.wordpress.com/2014/04/01/why-dont-we-have-a-g...
If you had a really good, intuitive tree editor, I would imagine it would be easily adaptable to all kinds of interfaces and scenarios. Mobile, web, VR...
[1] https://pcmonk.wordpress.com/2014/04/01/why-dont-we-have-a-g...
If you had a really good, intuitive tree editor, I would imagine it would be easily adaptable to all kinds of interfaces and scenarios. Mobile, web, VR...
If you had a really good, intuitive tree editor
People who write Lisp in Emacs seem to swear by Paredit.[1]I've not used it so I can't respond to either "really good" or "intuitive", but let's see if this works: To the Paredit user who just clicked the comments link followed by Ctrl+F paredit: what do you think of it?
[1] http://danmidwood.com/content/2014/11/21/animated-paredit.ht...
It let's you treat the code as structures, as trees and work on those directly.
That's all, but it's really really powerful.
Note: there is now https://github.com/Fuco1/smartparens which might supersede paredit, supporting all kinds of languages; I haven't given it a good try yet though.
How the hell did you see me doing that? :O. I searched for it after reading top-level thread since a lot of comments are basically describing Paredit.
I'm using Paredit to write Lisp and I really miss this style in other languages. It takes some time to get used to - I finally grokked it after spending ~1 hour (two pomodoros) on structuring and restructuring a block of Lisp code. But after that hour of practice, writing code feels much different.
Lisp code is an explicit tree structure, and what Paredit does is enforce that structure. It lets you move things up and down the tree, or left and right at the same level, automatically maintaining the structure (keeping your parens balanced). It properly handles cutting and pasting parts of a tree. After you internalize those features, you really start to think of code in terms of trees instead of text representation.
http://davewiner.userland.com/historyOfFrontier
More context: http://scripting.com/davenet/
A lot of the infrastructure of the current web sprung out of Dave Winer's experiments with Frontier. From RSS/OPML/podcasts to weblogs to RPC-over-HTTP, Dave and his employees at UserLand (which included Brent Simmons and IIRC Aaron Swartz) were pioneers that contributed a lot to the Internet we currently live in.
Frontier is open source, http://frontierkernel.org/ and these day, Dave Winer is rewriting a similar system with node, cf https://github.com/scripting?tab=repositories
The challenge is, of course, that a general-purpose tree editor is not likely to be efficient for editing code. You have to resist the urge to over-generalize. A good structured code editor isn't likely to be useful for anything besides coding.