I'm pretty much a broken record here, I'll try not to be too repetitive. > 1. How can I improve Leo's quality?
This sounds like it targets the core issue: Are there any areas of core which can be simplified? Any reduction in complexity will ease testing requirements as well as the learning curve for development and extension writing. I think the tedious behind the scenes process of elegantizing code will pay off in the long run. I don't know if there is potential for this or not. > 2. How do we understand complex computer programs? In think this is a matter of customizing environments with knowledge of the pattern of complexity in the program. Leo is well suited for this with @<file> @<command> @<button> etc. Each of these has known wishlist items. The other topic I think would benefit Leo is improved persistence. It's great to set up a Leo session with add-editor, renderings ... all the tools to manage complexity: but I tend not to do it, because of the effort required to restore next time makes things more complex, not less. I think there are ways to save state for most tweaks, except <add-editor> but they are scattered, require memorization. I think they should be consolidated and live in the core. If <save-session>, exit leo, start leo, <load-session> returned me to the _exact_ same state, it would be a real boon to my productivity. Optimizing versioning capability is related to persistence. Maybe these considerations are specific to my work day, during the day I'll be working on different code on different machines. They don't make much sense to someone who spends most of their time addressing the same code base. Thanks, Kent On Sun, Oct 30, 2011 at 9:19 AM, Edward K. Ream <[email protected]> wrote: > I've been thinking about two general questions lately: > > 1. How can I improve Leo's quality? > > The first question has arisen repeatedly lately, as I attempt to stamp > out bugs, and in doing so introduce more bugs. > > Here is a new idea: Leo needs some "subsystem" tests. The first two > subsystems that come to mind (that is, for which I have concrete > ideas) are Leo's colorizer and Leo's importers. I'll be saying more > about this topic in the near future. > > 2. How do we understand complex computer programs? > > This question arose because of recent questions about Leo's > scripting. Imo, after reading Leo's scripting chapter, the next (and > indeed only) step is to start reading Leo's sources. > > As I have said before, I don't have (nor do I need) detailed memories > of the details of Leo's sources. I have a general view, which is then > reinforced by searching. > > With Leo, I never just "browse" the sources. I always look at the > sources with a particular task in mind: either to fix a bug or to add > a feature. Thus, if a newbie really wants to learn Leo the best > (only?) way is to set a task for themselves and dive right in. > > **With this task in mind**, I search to find *nodes* related to the > task. I then clone the found nodes and move the clones to a "work > area". Thus, the process of understanding (and fixing) a problem is: > > A) clone all nodes related to the task and > B) use the *concentrated* nodes to fix the bug or add a feature. > > For complex tasks, I may have to further organize the concentrated > nodes to make them easier to understand. > > Probably all experts use searching, rather than memory, to find the > parts of a program that relate to a particular problem. The "Leo > difference" is the concentration of related items. This is a huge > benefit: no more repeated searches and no more remembering of which of > the found pieces are related to the problem. > > 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. > > -- 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.
