On Jun 10, 2012, at 10:00 PM, Ivan Kuznetsov wrote: > On Mon, May 28, 2012 at 12:21 PM, Tim McNamara <tim...@bitstream.net> wrote: > >> As great as Lilypond's output is, there is a long way to go in terms >> of simplification and usability (the syntax needs to be simplified >> dramatically; a lot of the code users have to write is pretty ugly >> and is going to scare off potential users). > > > I don't understand how this could be possible. Does anyone talk > about the need to simplify the syntax of Latex? Of Perl?
Let me respond as a musician rather than as a programmer, because I am the first and I am not the second. A lot of the syntax of Lilypond makes little sense except perhaps to people used to coding. If you're a musician, the first months of trying to use Lilypond can be little more than an exercise in frustration. There are several reasons for this, including: 1. Inconsistency between what is needed for coding things that need to be on the page. I can put in a barline with \bar and a very descriptive set of options ("|:" "||" ":|" "|." etc.). There is a simple visual logic to this that is excellent. The use of pitch and duration is likewise very simple and understandable such as c1, d2, e4 f8, g16, etc. It takes seconds to grasp the syntax; ditto how chords are written out with something like <c e g b>1 which is easily grasped. OTOH, if I want to put in rehearsal marks like section marks, codas, segnos, etc., the syntax is obtuse. It seems like I should be able to just use \coda, \segno, etc. But that's not the syntax Lilypond uses, the syntax is much more verbose and therefore easy to screw up- and one screw up kills the whole compilation. There is another issue there with needing simple and comprehensible error reporting to help users find the thing they screwed up. 2. Then there is the whole dealing with repeats and voltas and getting all the parentheses right. How a score is structured is not intuitive in Lilypond. It is not all that easy to make Lilypond to do things like setting four bars to the line (something jazz musicians tend to like). Things like glyphs and such are located by time rather than by structure, which is often backwards to how composers work on a manuscript- when I start with pen and paper, I usually start with sketching out the structure of the song before the melody ever gets written down; in Lilypond one cannot really do this. One result of this is that some things end up in funny, unexpected places. Codas placed at the end of a line used to go to the start of the next line if there was a \break; I don't recall offhand if that still happens. Surely someone thought there was a good reason for this but it frustrated me to no end when the damn coda didn't stay where I put it and ended up in the wrong place- because I use \break in every score in order to force four bars to the line- which rendered the chart incorrect for the musicians (there is a workaround for this, but IMHO it shouldn't be necessary). 3. There are too many "valid" ways of structuring a .ly file. A flexible syntax can be a good thing, but there are too many ways in which a .ly file can be organized and still have it compile correctly. This makes it hard to learn. There should be a logical flow to the syntax and how it is structured; good syntax should be enforced. Of course, we'd probably all have different ways defining "good" syntax. I am amazed at the variety of what I see when people post files, and most of them compile just fine! I may be seeing a problem where where there really isn't one, but it seems to me that in the long run a standardized .ly file structure will be easier to learn. 4. There are hundreds of pages of documentation and it can be very hard to find the information one needs in order to accomplish the task at hand. And searching either the web version or the PDF version does not always yield the needed information. Why is it like this? Because the focus of Lilypond has been, to a great degree, to create something that enables users to produce beautiful sheet music. That is the raison d'être of Lilypond. The main focus has not been on user friendliness and easy useability. As a result, a total of zero of the dozen or so musicians/composers I have tried to turn on to Lilypond have taken it up. They downloaded it, saw it is impossibly difficult, and went to something else. BTW, most of these are people with doctorates, medical degrees, MBAs, etc. They are computer savvy and they are not dumb. The user interface (like it or not, the *syntax* is the user interface- the text editor chosen by the user is not the user interface for Lilypond) is too beginner-unfriendly. Now, maybe that's OK- it may not be necessary to reach millions of users; maybe it's OK to focus on the users who will persevere through the steep learning curve and obscure commands and sometimes difficult syntax. Maybe it's OK to focus first and foremost on great output. But it might be OK to focus on making Lilypond easier to learn and use for non-programmers. Indeed, I think that this is part of what David is talking about working towards. Tim _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user