2.1 ¿Por qué cambia la sintaxis?
Con frecuencia, los cambios en la sintaxis se llevan a cabo para hacer que el código de entrada de LilyPond sea más sencillo tanto de leer como de escribir, pero en ocasiones se hacen los cambios para acomodar nuevas funcionalidades o mejoras para las funciones existentes.
Lo ilustramos a continuación con un ejemplo real:
Se supone que todos los nombres de las propiedades de
\paper y de \layout están escritos en la forma
primero-segundo-tercero. Sin
embargo, en la versión 2.11.60, observamos que la propiedad
printallheaders no seguía esta convención. ¿Deberíamos
dejarla como está (confundiendo a los nuevos usuarios que tienen
que tratar con un formato de entrada inconsistente), o cambiarla
(fastidiando a los usuarios con experiencia que tienen partituras
antiguas)? Al final se tomó la decisión de cambiar el nombre de
la propiedad por print-all-headers, y mediante el uso de la
herramienta convert-ly se dio a los usuarios existentes
la posibiilidad de actualizar automáticamente los archivos de
entrada que tenían previamente.
Desgraciadamente, el uso de la herramienta convert-ly no
permite tratar todos los cambios de sintaxis. Por ejemplo, los
acentos y otros caracteres fuera del alfabeto inglés se escribían
usando notación de LaTeX estándar en las versiones anteriores a
LilyPond 2.6; palabras como ‘Cigüeña’ se tenían que introducir
como Cig\"ue\~na. Comenzando con LilyPond 2.6, la letra
especial ‘ü’ se debe escribir directamente como carácter
codificado en UTF-8. Dado que convert-ly no puede
convertir los caracteres especiales de LaTeX a caracteres de
UTF-8, los archivos de entrada de LilyPond antiguos se tenían que
editar manualmente para efectuar la conversión.
Las reglas de conversión de convert-ly funcionan usando
correspondencia y sustitución de patrones de texto en lugar de una
‘comprensión’ profunda de los cambios producidos en un archivo
dado. Esto tiene varias consecuencias:
- El buen funcionamiento de la conversión depende de la calidad de cada conjunto de reglas que se aplican y de la complejidad del cambio correspondiente. A veces las conversiones pueden necesitar correcciones manuales adicionales, por lo que los archivos originales deberían conservarse a efectos de comparación, si es necesario.
- Solamente son posibles las conversiones a las sintaxis más recientes: no existe ningún conjunto de reglas para volver a versiones más antiguas de LilyPond. Como consecuencia, los archivos de entrada solamente se deben actualizar cuando ya no se mantienen las versiones antiguas de LilyPond. De nuevo, es conveniente conservar, por si acaso, los archivos de entrada, quizá mediante el uso de un sistema de control de versiones como el Git, que puede ser de gran ayuda para realizar el mantenimiento de varias versiones de los mismos archivos.
- LilyPond es bastante robusto al procesar espacios añadidos y
suprimidos de manera “creativa”, pero las reglas utilizadas por
convert-lycon frecuencia hacen ciertas suposiciones de estilo. Para tener actualizaciones sin problemas, por tanto, se recomienda seguir el estilo de la entrada tal y como se usa en los manuales de LilyPond, especialmente porque todos los ejemplos de los propios manuales se actualizan usando la herramientaconvert-ly.