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.
