My initial post in this thread showed how Leo could support Imps (Immutable 
Positions) without changing Leo's Position or VNode classes. I concluded 
that Imps were not a good idea :-)


Vitalije not-so-subtly implies that Positions are a blunder. This post 
refutes that notion.


*Positions are the foundation of Leo's generators.*


The great Bernhard Mulder proposed using generators such as 
*c.all_positions* and *p.self_and_subtree*. Much of Leo's scripting prowess 
is the direct result of generators.


*Positions have a natural meaning.*


Positions correspond to outline order in a fully-expanded outline. This 
*easily-understood* meaning carries over to the corresponding generators.


*The algorithms of the Position class are solid.*


Generators work because Leo's position class makes them work. The 
algorithms underlying generators are non-trivial, as you can discover for 
yourself. Leo's representation of positions makes the algorithms as 
straightforward as possible.


*Summary*


Positions give Leo much of its scripting power. Their meaning, 
representation, and algorithms are easily understood and as simple as 
possible.


It is insulting to imply that positions are defective.


Those who think they have a better way can create a Leo plugin or even a 
fork of Leo. They can then discover for themselves whether replacing 
positions would work. They do not need my permission for their experiments, 
and they need not convince me beforehand that their ideas have merit.


Waiting a year won't change my opinion. Only a complete demonstration of 
fully functional code could do that.


Edward

-- 
You received this message because you are subscribed to the Google Groups 
"leo-editor" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/leo-editor/cdf726d0-fbe7-492c-8980-b6ad328b174an%40googlegroups.com.

Reply via email to