lilypond-devel
[Top][All Lists]
Advanced

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

Re: critical issues


From: address@hidden
Subject: Re: critical issues
Date: Thu, 5 Jan 2012 09:42:39 +0100

On Jan 5, 2012, at 9:14 AM, David Kastrup wrote:

"address@hidden" <address@hidden> writes:

On Jan 5, 2012, at 1:20 AM, Janek Warchoł wrote:

Correct me if i'm wrong, but my impression is that
there is no particular direction in which we are going.

I'm sure that other people have their pet projects as well.  The
ensemble of these projects is the "direction" of LilyPond, and I don't
see why it would need more of a direction that that.

Because
a) LilyPond becomes unmaintainable if everybody implementing his own pet
project implements his own pet infrastructure and pet APIs for it.
b) LilyPond becomes unusable if everybody implementing his own pet
project does not bother paving the path for slightly similar pet
projects.

I agree with this - I should have added that those who are contributing to LilyPond should do so in a way that favors extensibility.

c) Implementors are scarcer than users.

In fact, I think that it is because of some sorta unified direction
that for-profit programs can often miss out on adding experimental or
innovative features.

Mike, just recently you said something like you had implemented
something along the line of spanbars, did not actually understand what
you were doing, it could not actually do the work you intended it to do,
but you thought there was nothing wrong with leaving it in until
somebody hit bugs caused by this code.

I agree with the "something like" part of your statement.

As opposed to an artwork, _any_ corner of LilyPond, no matter how small,
can _ruin_ the rest.  You tend to think of bugs and bad code of
blemishes at most, when they are actually more like fungi that will eat
through the whole canvas and cause it to fall apart.

This is not how I think of bugs.  If I thought of bugs like this, I wouldn't have taken the time to squash so many bugs in LilyPond over the past several months.

And if the LilyPond code does not make great strides in the direction of
becoming boring by doing everything the same way, projects like "use
linear programming" will be dead in the water since you can't streamline
a garbage heap of disparate code into doing linear programming if you
can't even make it do the same things in the same way everywhere before
changing that way to a linear programming one.


I agree.  For example:

The new StemTremolo code does less internal moving of the stencil and farms this out to callbacks.
The new Stem code is decoupled from the Flag code and now behaves (along with the flag) more like other grobs.
The Beam scoring code now looks more like the Stem and Tie scoring code on the inside.

I did not work on these projects expressly in order to make LilyPond more uniform, but in working on them, I tried to move LilyPond to a state where its code was uniform.  I think a good policy is that, when working on that which one wants to work on, one should always strive to do it in a way that leads to better maintainability and extensibility.  Perhaps this is my American bias, but I strongly believe that the value of LilyPond is in the innovativeness of those who care enough about it to work on it.  LilyPond's becoming more maintainable and extensible is a result of the good coding practices of these people.  However, I do not think that a grand unified vision of where LilyPond should go (short of several guidelines on style and common practice (many of which are already in the CG)) is necessary or desirable.

<taken only slightly out of context>
There are again two methods of removing the causes of faction: the one, by destroying the liberty which is essential to its existence; the other, by giving to every citizen the same opinions, the same passions, and the same interests.

It could never be more truly said than of the first remedy, that it was worse than the disease. Liberty is to faction what air is to fire, an aliment without which it instantly expires. But it could not be less folly to abolish liberty, which is essential to political life, because it nourishes faction, than it would be to wish the annihilation of air, which is essential to animal life, because it imparts to fire its destructive agency.

The second expedient is as impracticable as the first would be unwise. As long as the reason of man continues fallible, and he is at liberty to exercise it, different opinions will be formed. As long as the connection subsists between his reason and his self-love, his opinions and his passions will have a reciprocal influence on each other; and the former will be objects to which the latter will attach themselves. The diversity in the faculties of men, from which the rights of property originate, is not less an insuperable obstacle to a uniformity of interests. The protection of these faculties is the first object of government. From the protection of different and unequal faculties of acquiring property, the possession of different degrees and kinds of property immediately results; and from the influence of these on the sentiments and views of the respective proprietors, ensues a division of the society into different interests and parties.
</taken only slightly out of context>

Cheers,
MS

reply via email to

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