On Friday, June 1, 2018 at 2:57:52 PM UTC-5, vitalije wrote:

This is exactly why I was reluctant to share unfinished prototype. I did 
> beg you though, not to make any decisions before the prototype is finished, 
> but it seems too hard to resist. I couldn't resist the temptation to share 
> the unfinished code, you couldn't resits to make decisions.
>

On my walk just now, before reading Terry's comment, I realized that I 
should have responded to you, here, directly.

*I apologize for unjust criticism *

Very likely I have caused you severe pain in several recent comments, by 
criticizing your work unfairly. I apologize profusely. For me, unjustified 
criticism is almost unbearably painful.

I particularly regret the choice of the word "edict".  It's a principle, a 
suggestion.  Moreover, it was totally unfair for me to criticize *any* 
style choices you made in the prototype.  The last thing I want is for 
people to worry about criticism of unfinished code.  Again, I sincerely 
apologize.

I also regret other comments about your code. I was attempting to 
understand all the ramifications of helper *functions*, as contrasted with 
helper methods.  But again, my comments must have seemed like clueless 
criticisms. Again, I apologize.

BTW, face to face communication has its own failure modes :-)  Thoughtless 
spoken comments might even be more painful.  Which is why I like slower, 
more exact communication.

Let's move on...

*The prototype*

Vitalije, you may feel that the prototype has been misunderstood.  I'm not 
sure that's so, so let me explain.

Imo, the prototype has/had at least 5 purposes. For me, the first three 
have already succeeded spectacularly.  The other two, not so much, *at 
present.*

1. The prototype demonstrates that .leo files and external files can be 
read must faster than at present.  *In this regard*, the prototype needs no 
further work.  It is a *complete* success.

2. The prototype demonstrates that redrawing Leo's outline pane might also 
be *orders of magnitude* faster than at present. I am completely convinced, 
so prototype is a complete success, as it is.

3. The prototype demonstrates several new (to me) aspects of programming 
style.  I'm pretty sure I understand the benefits of helper *functions* 
instead of helper methods.  Dereferencing local vars is quicker, and there 
is no "self" clutter.

The fast-read branch uses this style where appropriate.  It's not needed 
everywhere, but it is spectacularly good in crucial places.  Once again, 
the prototype is a complete success, as it is.

Now to the less successful (so far) aspects of the prototype.

4. The prototype contains several examples of what I'll call "iterator 
style".  The code builds up lists (or bunches), and delivers them to code 
that then uses the lists/bunches.  This style is still confusing to me, 
even after detailed study.  A different prototype, might reveal why this 
style appeals to you.

5. The prototype may be attempting to demonstrate that new positions/vnodes 
would be better.  At present, I am completely unconvinced.  I see nothing 
in the prototype code that is persuasive.  Perhaps the reverse.

Perhaps you could explain, with words, not code, why new positions would be 
better.  In particular, I do not understand what it means to have a 
position "persist" when the outline changes.  I need a picture as good, 
say, as the git branch picture.  That made all the difference.

*Future prototypes*

I do hope I haven't made you shy about making further contributions.  That 
would be a big loss to the whole Leo community.  

It would be great to see a Qt prototype of fast screen redrawing.  The Tk 
prototype is completely finished, imo. I've written Tk drawing code, and 
the prototype Tk code was furlongs ahead of mine.  But Tk is way different 
from Qt, so the Tk prototype demonstrates only that Leo's Qt drawing code 
*might* be way faster than it is.

Aside: I now remember why I gave up incremental drawing in Qt.  It was just 
too difficult for me to handle scrolling.  The skip argument to 
ltm.display_items is really clever, though I'm not sure exactly how it 
works ;-)  It would be great if you could adapt that idea to Qt.  That 
would be a huge contribution.

*Summary*

I regret some of my recent comments. I apologize for them I promise not to 
criticize future prototypes!

I particularly regret the edict post.  Style considerations need not apply 
to prototypes! 

The miniTkLeo prototype has been a great success. Imo, no further work on 
it is needed. It might have been just as useful if it had come even 
earlier!  In future, I hope you will publish early and often. 

I would very much like to see a prototype of Qt incremental drawing.

I still do not understand iterator style. I'm not sure what it would take 
to open my eyes.

Code alone will not convince me that new positions are worth having. I'll 
probably need a simple picture.

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 leo-editor+unsubscr...@googlegroups.com.
To post to this group, send email to leo-editor@googlegroups.com.
Visit this group at https://groups.google.com/group/leo-editor.
For more options, visit https://groups.google.com/d/optout.

Reply via email to