23 de Septiembre, 2005

¿Configuración en XML? ¡No gracias!

Hace unos días se hablaba en Barrapunto de launchd, el nuevo sistema de arranque de MacOS X, y como a mi me importa poco el software propietario, pues no le di mucha importancia.

Lo que sí me llamó la atención son expresiones como:

Lo de la configuración XML está muy bien pensado y es algo que se tendría que haber hecho en sistenmas *NIX hace mucho tiempo.

No es un comentario excesivamente brillante (lo he copiado literal, es el primero que nos encontramos), pero viene un poco a representar una tendencia en los comentarios a la noticia publicada.

Sospecho que esa persona ni ha tocado nunca la configuración de un sistema *NIX a mano, ni mucho menos se ha tenido que pelear con un XML.

En determinadas tecnologías hay mucha exageración (hype), lo que llaman las buzzwords, y XML tuvo su momento de gloria (Using universal language :D).

Pero yo creo que no es una buena idea para ficheros de configuración, al menos no para el contexto general de los sistemas tipo UNIX.

Que el formato sea uniforme no quiere decir que la configuración sea más fácil, no tiene los mismos parámetros inetd que NFS, por poner un ejemplo (aunque hay gente a la que le gustaría registro a la windows :o). Así que supongamos que el comentario de antes solo se refería a launchd.

El formato XML no está pensado para que sea sencillo de manejar por el ser humano, sino para facilitar su manejo por parte de la máquina y aún, con cierto esfuerzo, poder ser editado a mano. Así que XML está indicado para entornos de administración gráficos, por ejemplo, en los que un programa puede gestionar los ficheros de configuración, gracias a que están en un formato especialmente indicado para ser tratado por la máquina.

¿Y si no es necesaria una administración gráfica? No, por favor, pasando de programitas en ncurses :D.

Pero bueno, tampoco confío en poder convencer a nadie. No obstante he sacado el tema porque Hubert Feyrer ha escrito una anotación bastante explicativa: Observing system startup - Metadata quo vadis?, comparando la configuración de un servicio en inetd, xinetd y el nuevo launchd de Apple (por cierto, lástima que Feyrer no tenga un blog con enlaces permanentes reales, así que eventualmente el link anterior no nos llevará a la anotación).

Anotación por Juan J. Martínez, clasificada en: unix.

Hay 10 comentarios

Gravatar

Lo que me parece curioso es que des importancia a un comentario de Barrapunto. De todas formas estoy de acuerdo en lo que dices, si la configuración depende en gran medida de una herramienta gráfica es posible que XML fuese una solución adecuada, pero siendo así ya no estaríamos hablando del sabor original de *NIX :D.

por r0sk, en 2005-09-23 10:39:06

Gravatar

Creo que Apple y su MAC OS X, que siempre se esfuerzan en presentar como UNIX, o SUN y Solaris no son un comentario en barrapunto ;)
Si te fijas en el resto de cosas que decía la gente, había más de uno engañado (en mi opinión) respecto a las bondades de XML... y para eso también está el blog, ¿no? para enseñar a la gente XDDDD

por Juanjo, en 2005-09-23 10:44:32

Gravatar

Si, se puede y se debe instruir desde el blog... de todas formas olvida lo del comentario de Barrapunto, no soy demasiado objetivo cuando se trata de esa web, pero ese es otro tema :D.

por r0sk, en 2005-09-23 11:32:02

Gravatar

No estoy de acuerdo con el post, un XML bien formado es muy inteligible para un ser humano así como para cualquier soft... Por ejemplo:

<config>
	<client>
		<port>3306</port>
	</client>
	<mysqld>
		<user>mysql</mysql>
		<old_passwords>1</old_passwords>
		<bind-address>192.168.0.1</bind-address>
		<datadir>/var/lib/mysql</datadir>
	</mysqld>
</config>
No os parece inteligible?? Además podría ser un standard para los diferentes programas y hacer migraciones entre versiones mucha más robustas...

Es mi opinión vaya...

por Julio, en 2005-09-24 17:13:00

Gravatar

XML no fue pensado para ser editado a mano por el ser humano :), otra cosa es que en determinados casos sí sea posible. El ejemplo que pones, sin ir más lejos, no es de lo que estamos hablando (la máquina no necesita tabuladores :D). Échale un ojo a los ejemplos reales que pone Hubert en su anotación... esa es la forma que actualmente usa launchd.

No te digo que no haya gente que pueda leer fácilmente ese XML (hay gente que programa en Lisp, ¿no? XDDD), digo que es más fácil una linea de inetd.conf tal y como la conocemos :)

PD: He editado tu comentario a mano para darle formato. El sistema de comentarios de este blog no permite formatear código, lo siento.
PD2: Acabo de añadir soporte para código en los comentarios (de forma experimental).

por Juanjo, en 2005-09-25 12:09:31

Gravatar

Pues eso. Por lo menos, la sintaxis está clara, mientras que en unix, los Makes tienen una (a veces críptica), el /etc/fstab otra, el hosts.equiv otra, el cron otra... se vuelve uno loco. Ant lo usa, firefox también, es texto plano.... Vamos, que está bien.

por JJ, en 2005-09-25 17:24:28

Gravatar

Lucas comenta en Absolute OpenBSD que si un administrador sabe decir qué deminios es cada fichero de /etc/, ya tiene la mayor parte de su trabajo hecho (o algo así).

Hombre, si queremos entender la sintaxis sin pararnos a saber qué demonios estamos editando... OK al XML :D Pero me parece que, si se me permite la analogía, pese a conocer esta la lengua de Cervantes, aún estoy un poco lejos de creeme capaz, por ello, de escribir poesía (porque no soy poeta :D).

por Juanjo, en 2005-09-25 18:13:34

Gravatar

Ahora si que se lee bien, gracias por añadir el formato al código ;-)

Por otro lado, és posible que los códigos que pone Hubert no se tabulen ni sean tan inteligibles, pero esa no sería la meta vaya, la idea que yo proponia va un poquitio más allá y presupongo que se le pudiera dar formato al XML.

Estoy de acuerdo en que no es tan claro como un texto simple como hasta ahora, de eso no hay duda, pero si eso ayuda a unificar la manera de hacer configs y encima es más robusto y escalable (a mi parecer), pues sería un mal menor no??

por Julio, en 2005-09-26 20:33:04

Gravatar

No lo sé. Está claro tu punto de vista, y en un mundo perfecto todo el mundo trabajaría con UTF-8 y XML ;) pero hay un factor tradición y "cosas que funcionan no las toques".

Mi experiencia editando configuraciones con XML no ha sido buena (fontconfig puede ser el culpable), pero el tiempo dirá si se acaba acercando el XML a la administración de los sistemas UNIX y UNIX-like. Apple y Sun ya dan pasos... veremos.

por Juanjo, en 2005-09-26 21:47:02

Gravatar

Me acabo de acordar que ayer leía algo como: 'El XML es como la violencia, si no resuelve tus problemas es que te hace falta más'.

Eso se puede decir/aplicar con facilidad a otras muchas cosas, pero con esta anotación reciente me hizo mucha gracia :D

por Juanjo, en 2005-10-04 00:36:05

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Algunas anotaciones relacionadas: