lilypond-user
[Top][All Lists]
Advanced

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

Re: Some wild considerations and a question


From: Martín Rincón Botero
Subject: Re: Some wild considerations and a question
Date: Mon, 19 Oct 2020 10:04:37 +0200

Just my two cents to this comment:
switch to another, easier to read and write extension language. Someone suggested Lua, for example, which would be a good candidate it seems

I don’t know about Lua, but as a non-programmer, I spent many days getting in grips with Scheme. The result were very simple functions for Lilypond, which were very difficult to write in the first place (parentheses, types...). Whenever I try to understand the code of advanced users, I simply can’t read most of it. Parentheses in Scheme are not easy to write nor to read. I thought all this was because of the fact that I’m not a programmer, so that I lacked some fundamental talent and knowledge for that. 

However, I explored abjad after basically giving up with Scheme. Abjad requires you to learn Python. I have to say I’ve had enormous progress with Python (much more than with abjad itself!). Every piece of code I find in the internet that exemplifies functions is readable (so that makes me progress even more!). After having found that abjad’s structures seem to get more in the way than help me, I now switched to plain Python to programmatically help me write Lilypond files more efficiently (by being able to add music to all instruments or to a list of instruments at once, by programming copy_bar and insert_bar functions that do what their name says, etc.). However, I still do have some “plug-ins” in abjad just in case I need them. If something like abjad could be used to write extensions for Lilypond, that would be an enormous improvement to the current Scheme situation. I could certainly contribute somewhat with “plug-ins”. I’ll have to read about Lua.

So Python basically showed me that being a non-programmer is not a limitation to use Python succesfully. I can’t say the same about Scheme. 

www.martinrinconbotero.com
On 19. Oct 2020, 09:03 +0200, Andrew Bernard <andrew.bernard@gmail.com>, wrote:
Are you talking about reimplementing LilyPond from scratch?

I'm happy with Scheme, as a programmer. It's the Guile implementation
that causes the performance issue with Guile 2, not the Scheme
languages. Perhaps it's just that with advanced tools one requires
advanced knowledge. As with anything.

Here's my two cents worth. For modern implementations, you could inquire
as to how Dorico is implemented. [May be proprietary information.]

Being a very heavy user of LilyPond, what I don't like is twofold, a)
it's compiled, and the compilation takes a very long time, and b) its
completely single threaded so having a really grunty machine makes very
little difference to a). Whereas programs like Dorico hold in memory
presumably and changes even to large scores are instant. They would be
the biggest changes I would like, but of course necessitating complete
rewrite. Seems unlikely to me. But after years of LilyPond I am at the
point where I need to go to Dorico because I can't afford minutes of
wait time to tweak a slur or make other micro changes (even with the
typesetting on/off commands my scores are so complex the compiles are long).


Andrew





reply via email to

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