lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Future of OpenLilyLib


From: Jean Abou Samra
Subject: Re: Future of OpenLilyLib
Date: Mon, 21 Nov 2022 20:21:40 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.4.1

Le 21/11/2022 à 20:02, Mark Knoop a écrit :
Thanks Jean for your thoughts, which are not so far from my own. A few comments:

Maybe what I'm going to say will sadden some, but personally,
I never quite understood what the advantage of developing
openLilyLib as a library external to LilyPond, as opposed to
contributing features to LilyPond itself, was supposed to be.
Having just looked through quite a lot of the code in openLilyLib, I
think there will always be code there that is not suitable for inclusion
in LilyPond, for many reasons (highly specialized use cases, code which
works just-well-enough™, etc...).

It's no criticism of the core LilyPond developers to acknowledge that
not every desired feature will be accepted, and even if so, there is
still a significantly higher hurdle to contributing to LilyPond than to
OpenLilyLib (and rightly so).



That is true. On the other hand, the hurdle for contributing to
LilyPond is already significantly lower than it used to be a few
years ago (we migrated to GitLab, large parts of the contributor's
guide were rewritten, ...).

It's all a tradeoff. The less requirements you put on quality,
the more maintenance trouble you get (and there is an inherent
maintenance trouble related to the fact that OLL is not usually
constrained to a single version of LilyPond, although you are
proposing to make it so in the short period until 2.24).



Almost all programming languages have non-core features which are
developed in a modular way - this fact would seem to support the case
for something similar for LilyPond.



A Python library for scientific computing has absolutely nothing
to do with a Python library for creating web pages, so the developers
have no reason to tie themselves together. In contrast, music
typesetting is an intricate task with dependencies everywhere.



I see two advantages over LSR, the primary one being version control
(which includes being able to search it locally with git grep); the
other being the potential to include code which is larger in scale and
interacts sensibly. (Once you start importing several LSR snippets into
one project, the potential for adverse side-effects becomes > 0.)



I dream of a remake of LSR that would fix its problems (lack of
history / version control, LSR editors don't know who submitted
a snippet and are not notified about it, things like that).

On the other hand, when I see a large snippet of useful code,
my first reaction is normally to wonder how some of it could
be turned into a patch.



To be honest, although I wasn't there at the time, it is my
impression that this split was partly motivated by some personal
conflicts that reduced Urs' willingness to submit patches to
LilyPond, which is not relevant for us today.
Indeed, this isn't relevant, except to acknowledge that for whatever
reason, there is at the moment a bunch of useful stuff which is a) not
yet in LilyPond, and b) bit-rotting until it is dealt with.


Yes.


Some of the OLL stuff has been made part of LilyPond over the
years, for example Merge_mmrest_numbers_engraver and \vshape.
There is also \staffHighlight, which serves a purpose that
overlaps a bit with the purpose of AnaLYsis. Long-term, I would
like to see edition-engraver go that route as well (with a
better, iterator-based implementation).
Absolutely I'd also love to see this. (Another task which I didn't put
in my first email is to clean out code that *has* made it into LilyPond.)

Whilst I was able to fix-up the edition-engraver for Guile 2, I am
certainly not up to rewriting it "better" - and I don't expect anybody
else to do that either.



Iterators are currently not Scheme-accessible anyway. It would
have to be done on the C++ level.


My hope is that by making OLL a little more usable and less chaotic, it
might be possible to identify firstly which features are being most
used, and secondly use that information to prioritize moving those into
LilyPond in the best way possible.


Good.

Best,
Jean

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]