Revisando la documentación de GraphML recordé lo innecesariamente complejo que es XML. Cierto que es extensible y flexible, pero es difícil de aprender y de usar. Entiendo que el propósito de XML no es de ser legible por humanos, sino ser un metalenguaje estándar de texto, editable por humanos y legible por computadora.
No lo entiendo, XML es difícil de entender para un humano y para una computadora, así que no le veo el caso, sin embargo esta tan inflado que todo el mundo lo usa (y lo abusa) y es casi imposible evitarlo.
Así me encuentro hoy debatiéndome si vale la pena implementar XML para mi programita de grafos.
- Existen una gran cantidad de herramientas que pueden manejar XML
- Qt tiene una excelente biblioteca de XML, la implementación no sería un problema
- Usando un formato estándar como GraphML, se abre la oportunidad de compartir archivos con otras aplicaciones (aunque, no conozco ninguna y no se si sería realista esperar que se use en conjunto con otros programas, pero uno nunca sabe)
- XML es complejo, maneja esquemas, namespaces, instancias y quiensabe cuantas cosas que no entiendo mucho
- Ninguno de los formatos que revisé soporta todas las características que necesito por lo que tendría que usar mis propias construcciones, lo cual derrota el caso de compartir los archivos
También está la opción de seguir extendiendo el formato que estoy usando, aunque como está implementado actualmente abuso de las expresiones regulares, lo que hace el código bastante difícil de mantener y extender. Para hacerlo bien tendría que crear esencialmente un mini compilador (lex y yacc pueden ayudar).