XML, el nuevo estándar

Tecnología
por Tomás Bradanovic
http://www.bradanovic.cl
http://www.bradanovic.cl/pcasual





En una conversación con mi amigo Stephen Gutcknekt que es el programador más experimentado que he conocido, le contaba por que había perdido el entusiasmo por la programación por la estúpida moda de usar motores de base de datos para todo, los lenguajes y herramientas disponibles se habian ido desarrollando en torno a eso llegando a extremos ridículos de usar bases de datos relacionales para guardar muy pocos registros con todas las desventajas que esto tenía.

Esto fue culpa de las universidades, donde los profesores flojos y sin real interés por entregar una buena educación, formaron generaciones de fanáticos de estas bases de datos, convenciendolos que lo único correcto era dividir la programación en capas y que el programador de aplicaciones quedara aislado de la ubicación y formato "físico" en que se guardan los datos, esto último se dejaba a cargo de una caja negra llamada "motor de base de datos" que es un programa que sabe el diablo como funciona y con el que el programador de aplicaciones no debía meterse. Así, en lo referente al almacenamiento de datos, los programadores quedaban limitados a trabajar en una capa lógica usando una especie de esperanto para datos llamado "SQL" (lenguaje de consultas estructurado).

Lo bueno era que supuestamente todos iban a trabajar de la misma forma, lo malo es que en la practica quedan amarrados a software propietario (Microsof, quien otro con sus motores de base de datos Jet), jamás sabían donde y como quedaban guardados realmente los datos, que agujeros de seguridad podían venir incluídos en el motor, que hacer cuando el motor tenía "excepciones" (una manera rebuscada de nombrar los bugs de programación), que hacer cuando los datos se corrompían físicamente por cualquier causa, etc. etc.

Otro problema mucho más serio es que el motor de base de datos es un programa del tipo "one size fits all" o sea que trata de servir para toda clase de aplicaciones, no es específico y por lo tanto es siempre ineficiente a menos que la aplicación coincida exactamente con la aplicación ideal que tuvieron en mente sus diseñadores. Cuando se trata de guardar unos 1000 registros por ejemplo el uso de un motor de base de datos es ineficiente e inútil. con los computadores actuales mucho mejor es guardar en un texto plano y usar busqueda secuencial simple.

Porque todo el concepto de bases de datos relacionales y motores fue creado en otra época, pensando en bases de datos gigantescas y complejas que era necesario dividir en muchas tablas para hacer complicados trabajos de búsqueda. Para estos casos las bases de datos relacionales y sus motores son conceptos válidos y muy útiles, pero con la computación distribuída y las microaplicaciones usar esos mismos conceptos a sistemas pequeños es un enfoque muy tonto por decir lo menos.

Yo siempre pensé que era un tremendo error haber abandonado el texto plano como formato de almacenamiento de datos y resulta que el tiempo me da la razón, conversando con Stephen me dice que esta no es una idea anticuada sino del futuro y que el texto plano ha vuelto en gloria y majestad gracias a la tecnología XML, me explicó a grandes rasgos como funcionaba y me dejó tan asombrado que venciendo mi natural tendencia al ocio me he puesto a ver el asunto por medio de San Google.

¿Y que diablos es XML, una especie de HTML? son algo asi como primos lejanos, tienen un propósito totalmente distinto pero comparten la misma idea base. Veamos, el HTML es el lenguaje en que se escriben las páginas web y se escribe en texto plano, en el fondo se trata de instrucciones que se colocan junto con el texto que queremos mostrar, una página HTML es un texto mas una serie de etiquetas (Tags) que son interpretadas por el programa explorador que estamos usando (IE Explorer, Firefox, etc.) para que muestre el texto de determinada forma, lo ponga en negritas , en cursiva , etc. El HTML además permite incluir otros tipos de contenido (imágenes, videos, sonidos, animaciones, etc.) y principalmente incluir "Links" que son los que nos permiten saltar de una página a otra. En el fondo cualquier página HTML es un simple texto plano que ademas del texto que queremos mostrar contiene instrucciones que el explorador interpreta. En ese sentido HTML es un lenguaje de programación interpretado por el explorador. Si en su explorador hace clic en Ver, Código Fuente podrá darse cuenta de como está escrito el programa que hace que el explorador muestre esta página.

El XML toma esta misma idea pero orientada a sustituir las bases de datos como medio estandar para presentar e intercambiar datos por Internet. En XML no hay etiquetas (instrucciones) predeterminadas como la que indica al browser que use negritas, itálicas, etc. en HTML, uno mismo puede inventar cualquier etiqueta porque estas solo sirven para indicar la estructura de los datos que tiene guardada la pagina, es decir como se ordena la información en ella. Por ejemplo (simple) si queremos guardar los datos de una guía de teléfono la estructura puede ser una de nombre telefonos y que contenga datos de nombre, apellido, direccion y numero telefónico, esa es la estructura, la descripcion de a que tipo pertenece cada dato que esta guardado. Si quieren ver un weblog guardado en su formato original de XML haga clic en http://www.bradanovic.cl/weblog.xml

Las ventajas de este esquema son enormes para las bases de datos pequeñas o medianas; a simple vista de un archivo XML cualquiera puede darse cuenta de que se trata, como está escrito en texto plano un archivo XML puede usarse en cualquier plataforma sin distinciones (Windows, Mac, Linux, Unix o lo que sea), también puede ser comprimido con gran facilidad (con Zip, Rar, etc.), los datos corruptos pueden arreglarse fácilmente con un simple editor de textos como el Notepad, y lo más interesante un mismo archivo XML puede presentarse optimizado para diversos tamaños y formas de pantalla, desde una palm a un PC de escritorio.

Bueno, un montón de ventajas, la más importante a mi juicio es que XML es una solución linda, limpia y simple a diferencia de las oscuras cajas negras de los motores de base de datos. Ahora la pregunta del millón es ¿como hacer que un archivo XML se muestre en la pantalla como yo quiero? ¿como buscar datos en el o mostrar solo la parte que me interesa?. Hay varias formas posibles; una es usar las Cascade Style Sheets definiendo estilos para mostrar el XML, esa es una forma más o menos anticuada, otra es usando algún lenguaje de scripts como Javascript o VBscript o usando un lenguaje creado especialmente para esto que se llama XSL, en fin, la idea base fue crear un estandar con pocas y sencillas reglas y a partir de eso se pueden manipular los datos usando distintos métodos o programas. Ojo con el XML, por ahí está el futuro de la web.


Otros artículos

Artículos de opinión
Cultura de la sombra vs cultura de la basura
Renegociemos!
Un museo para Arica
Hay que cuidar a los locos
2004 Año de proyectos
Ariqueñismo
Un chincol se comió una viña
Costanera Sur
La curva de lingeniero
¿Que clase de desarrollo queremos para Arica?
Una oportunidad histórica
Dos héroes de Arica
País digital, país bilingue

Tecnología
Cuando las computadoras se equivoquen
No hemos visto nada todavía
Como funciona Internet (1)
Como funciona Internet (2)
Internet es la nueva imprenta
Internet comunitaria
Bases del diseño web

Jabber, el nuevo estándar de mensajería
Privacidad en Internet
La riqueza virtual
Como se hace un sitio web

De la serie "yo lo conocí"
Jaime Barros Perez Cotapos
Gabriel Abusleme Alfaro
Francisco Melús Oñate
Juan Guillén Canales
Pedro Ariel Olea
Raul Pey Casado
Percy Dauelsberg


ero