domingo, 27 de abril de 2008

Hemos sobrevivido la sobre dosis de XML's

Durante los últimos años, hemos visto XML en todas partes y a pesar que se justifica en muchas ocasiones, "too much is too much".

Uno de los abusos más fastidioso son los archivos de configuración. En Java, hubo un tiempo que todos tenian que ser XML, sino no era computación "empresarial":
  • las especificaciones J2EE se llenaron de ellos: web.xml, ejb-jar.xml,.application.xml, faces-config.xml, service.xml y como los especificadores consideraron que iban a ser generados con la ayuda de IDE's, no hicieron ningún esfuerzo para simplificarlos.
  • los servidores de aplicación agregaron sus propios formatos. En el caso de Resin, sus autores lograron simplificar los archivos estándares con el costo de salirse de la norma Java EE. Otros fabricantes agregaron archivos aun más complejos que los del estándar y que son absolutamente imposibles de editar en vi o notepad: allí, IBM WAS es el campeón sin lugar a duda.
  • Las primera generación de API's y frameworks Open Source que llegaron a simplificar J2EE tampoco se deshicieron de la configuración en XML. Hibernate logro simplificar si se compara con ejb-jar.xml, pero no puedo opinar lo mismo de los de Spring: Spring facilita un caos de configuración y Alfresco es un ejemplo reportado del sobre uso de estos archivos.

Llego algo de salvación, a menudo gracias a las anotaciones de Java y algunas API's que las usan de manera inteligente:
  • JPA (las entidades en EJB 3.0) necesita un archivo de configuración realmente sencillo ("persistence.xml").
  • JAX-WS (Web Service) y JAXB (binding de XML) no requieren nada de XML (excepto configurar algo en el "web.xml" de servlet)
  • Hay algunos framework Open Source como Google Guice (competidor del core de Spring) y Wicket (competidor de JSF) que tampoco requieren XML.

Finalmente, algunos comentarios fuera del mundo Java:
  • Scala tiene un excelente soporte de XML: habríamos tenido este nivel de integración en Java, quizás los archivos de configuración no habrían sido tan insoportables.
  • el mundo .Net ha abusado de los Web Service (SOAP, WSDL, UDDI, WS-* son todos basados en XML). MS recomendo incialmente usarlos para comunicaciones intra-aplicaciones, como por ejemplo, entre la BD y el servidor de aplicación. ¡Menos mal que durante este tiempo, trabajaba en Java!

No hay comentarios: