On Mon, Oct 31, 2011 at 9:48 AM, Kent Tenney <[email protected]> wrote:

> Are there any areas of core which can be simplified?

The first two areas that I am targeting for subsystem tests are Leo's
colorizer and Leo's importer code.  These are complex pieces of code
that do complex tasks.  There is, imo, no real potential for drastic
simplification of either subsystem.

What we need, instead, is a drastic improvement in subsystem tests,
following the outlines that I have described.

As you know, I always try to solve bugs by simplifying code, not by
adding special cases.  Sometimes that works; sometimes not.
Furthermore, complexity takes several forms, some of which is
particularly harmful, so of which is not.

Leo's external file code in leoAtFile.py, and Leo's colorizer each
contains a fundamentally simple algorithm wrapped in very complex init
code.  Each is fundamentally sound because the fundamental algorithm
is simple and sound; each is "capable" (supports lots of needed
options) because the init code for each is complex.

The "dual nature" of leoAtFile.py and the colorizer in qtGui.py isn't
going to change.  All we can hope for are unit tests that cover what
needs to be covered.

>> 2. How do we understand complex computer programs?

> The other topic I think would benefit Leo is improved persistence.

We shall more forward on this, but imo persistence is *usually* more
of a convenience than a fundamental requirement for understanding.
The real question related to understanding is "persistence of what?"

Leo is what it is because outline structure is the fundamental thing
that persists.  Everything else is secondary, by a very large margin.

> Optimizing versioning capability is related to persistence.

Again, versioning may be added to Leo, but it is not, imo, the key to
understanding complex code or other data.  Again, the question is,
"versioning of what?"  Versioning of text has no chance, imo, of
creating a breakthrough in understanding.

Outline structure is the only thing that Leo supports that creates a
breakthrough in understanding (and power).  A huge part of Leo is
simply devoted to translating back and forth between the outlined
(structured) world and the flat (text) world.

The questions I am considering are:

1.  Is there anything *else* (besides outline structure) that could
conceivably create a breakthrough in understanding in complex data?

2. Are there other ways of using outlines that could create a
breakthrough in understanding?

Edward

-- 
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