Unless something unexpected happens, I am fairly sure that Leo will fade away when I am gone. Leo has many capable users, but they all have their own projects to attend to. Without the work that I do to keep Leo up to date Leo will eventually die. As I have said many times before, the only way to have Leo live on would be to build the essence of Leo into one or more mainstream programming environments.
Mathematica's Workbench 2 environment http://www.wolfram.com/products/workbench/ may be the place that Leo can best take hold. It may even be possible to generalize the work to the Eclipse IDE, http://www.eclipse.org on which Workbench 2 is based. In the middle of last night I had this Aha: ** Sentinels are not a problem if everyone uses the same IDE.** In fact, exactly this situation applies to Wolfram Research—everybody their uses Workbench 2 for software development, as explained in this video: http://www.wolframalpha.com/ Moreover, this is also the *tacit* assumption behind certain features of the Eclipse IDE. In particular, Eclipse bookmarks (and more generally, Eclipse markers) are not preserved unless everyone uses Eclipse. A simple experiment proves this statement. I created a bookmark and then examined the file containing the bookmark. There were no sentinels. A little sleuthing showed that Eclipse stores the bookmark in a separate .bookmarks file. Thus, changing the file in an external editor is sure to invalidate the bookmark, as indeed it does. In short, both Eclipse and Workbench 2 both assume that nobody will be modifying files outside of the IDE. In such an environment, Leo sentinels could become just another kind of Eclipse marker! Thus, a fairly simple Eclipse extension could give Eclipse all of Leo's key features. Unlike at present, users could modify views (outline panes) and the IDE would remember such changes. The user could modify headlines, thereby creating the crucial headline/body pane distinction. The user could create and use clones. The extension could create a proper DOM for outlines. Conclusions The Aha is sound; the question is how important it will turn out to be. The possibility of giving Leonine capabilities to Eclipse/ Workbench 2 is real, but for perhaps obvious reasons I hesitate to dive right in to this project :-) Eclipse is a whole new world, oriented towards Java, not Python. Furthermore, embedding Leo into Eclipse does nothing for the mass of Emacs or Vim users--creating an Eclipse extension would not be a general way of making Leo immortal. Still, it is a real possibility. Edward P.S. I mentioned that there is any easy way to allow clones in Mathematica expressions. Indeed there is. Simply add an id field to Cell expressions. Two Cells with the same id would be clones. Alternatively, one could create a Clone expression that simply references of id of another cell. Unlike in Leo, id's are purely local to the containing Notebook, so they need not be immutable. Any id unique to the particular Notebook will do, including ints like 1,2,3... P.P.S The following gives the history of the Aha. It is here as an historical record. You may want to stop reading now :-) Several recent events turned my attention to Mathematica: http://www.wolfram.com/ First, there was a TED talk: http://www.ted.com/talks/stephen_wolfram_computing_a_theory_of_everything.html Then there was a discussion of IPython notebooks on ipython-dev. I looked again at the Mathematica notebooks, comparing them to Leo's body pane. Mathematica notebooks are marvelously powerful, yet they lack organizational capability: they don't have clones. Looking at the fundamental structure of Mathematica notebooks, we see that everything in Mathematica is an expression. This is a brilliantly simple idea. If you want something, just give it a name! You could say that Mathematica expressions are lisp atoms done right. I then turned my attention to Mathematica Workbench 2 programming environment: This is based on Eclipse. Once again, Eclipse is a powerful IDE, but it lacks Leo's features. I happened across this video that tells how Workbench 2 was vital to creating Wolfram Alpha: http://www.wolframalpha.com/ At one point somebody says that everybody at Wolfram research uses the Workbench. Naturally, this got me thinking about how to build Leo into the Workbench 2. I spent a long bath wondering what to do, without any real progress. The same old issues with sentinels kept cropping up. However, in the middle of the night I had an Aha. If *everyone* uses Workbench 2, which is indeed the case at Wolfram Research, then one could modify the Workbench 2 to use hidden sentinels(!) Even before this Aha, I new there was something strange about Eclipse/ Workbench 2. These IDE's allow one to create bookmarks. But how could these bookmarks “survive” changes made by an external editor. The answer, is, they don't(!!). That is, the Eclipse IDE tacitly assumes that all changes to the source files will be made in the Eclipse IDE. Indeed, the idea maintains bookmarks (a special form of the more general notion of a marker) as an index into the source file. No direct alteration of the source file is made. There are no marker-related comments in the source files. EKR -- You received this message because you are subscribed to the Google Groups "leo-editor" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/leo-editor?hl=en.
