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.

Reply via email to