LilyPond rules when you want to manipulate music algorithmically. Like make a music reading training app that creates examples based on your performance so far.
I've had a few attempts with algorithmic lilypond for some technical exercises. It's generally good for getting the basics out, but you either lose the advantages of `relative` mode, or end up with unreadable nonsense. So I find it's good for getting things started / 80% of the work done but then needs tweaks.