> With 2000 rows and 10 columns, we have +25 milliseconds, which is an
> observable UI lag.  A couple of lags like that can make a program feel
> all syrupy.  Thus, I do agree regarding your motivation, and I applaud
> your effort to make Org faster!  We all want it.  Really, all I wanted
> to point out is that, for less smart folks like me, the implementation
> you propose is a bit too "rocket science", requiring in-depth study as
> opposed to a quick scan, compared to the original.

This function isn't a part of the public api of org-colview. So most
users will never even look at this function, much less study it.

> It is objectively simpler than the proposed variant.  Me, I would also
> indent `string-width` below `nth` for maximum readability, and perhaps
> even spell our `index`, making it as 101 as possible:

> (dolist (entry cache)
>  (cl-loop for index from 0
>           for triplet in (cdr entry)
>           do (setf (nth index widths)
>                    (max (nth index widths)
>                         (string-width (nth 2 triplet))))))

Respectfully, I disagree. The cl-loop implementation is unreadable. I
think the implementation in the patch is great.

Le mer. 13 mai 2026 à 04:22, Rudolf Adamkovič <[email protected]> a écrit :
>
> Sławomir Grochowski <[email protected]> writes:
>
> [You forgot to CC the list; fixed here.]
>
> > Thanks for the feedback, Rudy. I agree that the function lost some
> > readability and maintainability. I was actually torn between the two
> > versions and initially prioritized speed, but looking at the benchmarks,
> > we're talking about microseconds that a user will never notice. This
> > function won't be a bottleneck, so I'm glad you pointed that out.
>
> With 2000 rows and 10 columns, we have +25 milliseconds, which is an
> observable UI lag.  A couple of lags like that can make a program feel
> all syrupy.  Thus, I do agree regarding your motivation, and I applaud
> your effort to make Org faster!  We all want it.  Really, all I wanted
> to point out is that, for less smart folks like me, the implementation
> you propose is a bit too "rocket science", requiring in-depth study as
> opposed to a quick scan, compared to the original.
>
> > I would like to revert to the cl-loop version, as it seems the
> > most elegant and readable to me:
> >
> >  (dolist (entry cache)
> >     (cl-loop for i from 0
> >            for triplet in (cdr entry)
> >            do (setf (nth i widths)
> >                     (max (nth i widths) (string-width (nth 2 triplet))))))
> >
> > What are your thoughts on this?
>
> It is objectively simpler than the proposed variant.  Me, I would also
> indent `string-width` below `nth` for maximum readability, and perhaps
> even spell our `index`, making it as 101 as possible:
>
> (dolist (entry cache)
>   (cl-loop for index from 0
>            for triplet in (cdr entry)
>            do (setf (nth index widths)
>                     (max (nth index widths)
>                          (string-width (nth 2 triplet))))))
>
> Rudy
> --
> "It is better to have 100 functions operate on one data structure than
> 10 functions on 10 data structures."
>
> --- Alan Perlis
>
> Rudolf Adamkovič <[email protected]> [he/him]
> http://adamkovic.org
>

Reply via email to