lilypond-user
[Top][All Lists]
Advanced

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

Re: Not Nice Review of the LilyPond


From: David Kastrup
Subject: Re: Not Nice Review of the LilyPond
Date: Sun, 02 Dec 2018 16:57:17 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)

Sandro Santilli <address@hidden> writes:

> On Sun, Dec 02, 2018 at 03:26:44PM +0100, Thomas Morley wrote:
>> Am So., 2. Dez. 2018 um 14:01 Uhr schrieb Sandro Santilli <address@hidden>:
>> >
>> > Very obscure way to put chords
>> > in parenthesis (I asked yesterday).
>> 
>> I beg to differ.
>
> Really ? And right after this statement you post a 36 lines
> snippet of code full of parens ? :P
>
> I know Lilypond is powerful, that's why I still use it, but
> it's hard not to notice how obscure its code is (what is it,
> scheme?)

C++.  Its own language is hand-crafted syntax, and the extension
language is GUILE, a Scheme dialect.  Apart from being Scheme, the
extension language shadows the structure of both the LilyPond language
and its internals pretty closely, to the degree where closures can span
across language barriers.  That makes for a much more thorough and
manageable synthesis than, say, LuaTeX with its Lua "extension"
language.

If you think LilyPond's integration of extension language and document
language is "obscure", try LuaTeX.  Lua by itself is a procedural
language and thus tends to be more readable to humans than Scheme which
has a more "intuitive" syntax to computers, but integrating Lua with
other languages to the degree Scheme allows for is not there.

It's also hard not to notice what kind of off-the-cuff code can be done
by people acquainted with LilyPond when you ask nicely, and this kind of
code just integrates painlessly into documents.

Make no mistake: the TeX world has its own wizards and masterpieces, but
impressive as they are, they are not "off-the-cuff" and many demonstrate
how to coax TeX in incredibly clever way to do simple things.

-- 
David Kastrup



reply via email to

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