@clean removes barriers to using Leo that prevented its widespread 
adoption.  Only now, after the barriers have been removed, do I see how 
important those barriers were.

For the very first time, Leo can be used in *all* situations without 
compromise.  There is no longer any need to make excuses for sentinel 
lines, or argue whether people should accept them.  Sentinels are simply 
gone.

Not only did I not see how damaging sentinels might be for non-Leo users, I 
did not see how inconvenient sentinels might be for my *own* work flow.  
This was a shocking revelation.  To illustrate, here is the first draft of 
a new comparison between @clean and @file in the programming tutorial:

QQQQQ
This tutorial discussed @clean first for three reasons:

1. To avoid making excuses for sentinel lines.

2. To brag about the @clean update algorithm.

3. It is often more convenient to avoid sentinels. For example, when I 
study other people's code I do the following:

- Create a git repo of the directory to be studied, adding all the source 
files and doing an initial commit.
  
- Use an `import script`_ to create the desired @clean nodes.

- Explicitly save all the imported files using Ctrl-Shift-W 
(write-at-file-nodes).

- Use `git`_ diff to ensure that no important changes have been made while 
importing the nodes.

- Use git diff to track any changes I make (such as adding tracing or 
debugging statements) for the purposes of studying the code.

Using @clean is an essential part of this work flow. The diffs would be 
much harder to read if I had imported files into @file trees instead.

Nevertheless, there are advantages to using @file instead of @clean. All 
these advantages arise because external files created by @file contain 
explicit outline structure.

1. Leo can read @file trees more quickly and without guesses. There is 
never any need for you to move ambiguous lines from one node to another.
   
2. Sentinels allow you to share structure simply by sending the external 
file. This is an overwhelming advantage for Leo's developers.
   
3. A minor advantage: @file makes Leo files smaller. Leo stores the entire 
@clean *tree* in the .leo file, but only stores the top-level @file *node* 
in the .leo file.
   
In short: use @clean for most purposes. Use @file when all developers in a 
project use Leo.
QQQQQ

The point is that I have just, in the past few days, realized how badly 
sentinels interfered with git diffs.

Imo, @clean is the long-sought breakthrough that just might allow Leo to 
"go viral".  In retrospect, we can see that sentinels were a *fundamental* 
problem that neither exhortations nor documentation could remedy.  @clean 
removes the one and only real barrier to using Leo everywhere.

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 post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.

Reply via email to