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

> "m...@apollinemike.com" <m...@apollinemike.com> 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
_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to