{"id":42,"date":"2008-01-22T03:23:23","date_gmt":"2008-01-22T02:23:23","guid":{"rendered":"http:\/\/klondike.xiscosoft.es\/klog\/2008\/01\/22\/la-importancia-de-los-estandares-en-mundo-del-software-libre\/"},"modified":"2008-02-02T23:51:10","modified_gmt":"2008-02-02T22:51:10","slug":"la-importancia-de-los-estandares-en-mundo-del-software-libre","status":"publish","type":"post","link":"https:\/\/klondike.es\/klog\/2008\/01\/22\/la-importancia-de-los-estandares-en-mundo-del-software-libre\/","title":{"rendered":"La importancia de los est\u00e1ndares en mundo del Software Libre"},"content":{"rendered":"<p>Hace poco estuvimos discutiendo yo y algunos compa\u00f1eros de Polinux un par de temas acerca de aplicaciones interescritorio. En el siguiente art\u00edculo expongo algunos problemas, cu\u00e1l puede haber sido la causa del mismo y algunas soluciones propuestas que generalmente ser\u00e1n comunes: &#8220;Utilizar est\u00e1ndares consensuados&#8221;<\/p>\n<p><!--more--> Muchas veces, cuando usas entornos de escritorio en sistmeas GNU\/Linux te encuentras con que hay aplicaciones &#8220;bonitas&#8221; y otras que tienen una apriencia m\u00e1s descuidada. Esto suele deberse a que cada una ha sido creada usando librer\u00edas distintas que representan los widgets (entendiendo por widget desde un cuadro de texto hasta  una barra de desplazamiento), de formas distintas.<br \/>\nEste problema suele ser un problema &#8220;menor&#8221; de cara a la mayor\u00eda de usuarios experimentados, pero para un usuario que empieza pueden llegar a echarle atr\u00e1s, lo curioso es que, por lo general,  dichos widgets suelen ser similares, por no decir id\u00e9nticos. En este caso, tengo una propuesta que pueden llegar a ser \u00fatil:<br \/>\nCambiar el paradigma actual en el que las aplicaciones las que se encargan de dibujar los widgets  y su contenido por otro en el cu\u00e1l mediante un protocolo est\u00e1ndar (semejante al que existe actualmente para comunicarse con el servidor de las X) sea el sistema de escritorio el encargado de dibujar los mismos de acuerdo a las preferencias del usuario.<br \/>\nDicho protocolo deber\u00eda de poder ser extensible para la adici\u00f3n de nuevos widgets y deber\u00eda ser decidido de forma consensuada por representante de los desarrolladores de los principales sistemas de escritorio y deber\u00eda definir entre otras cosas los tipos de widgets existentes, sus par\u00e1metros y, de quererse retrocompatibilidad, una clase en versiones anteriores que ofrezca unas caracter\u00edsticas semejantes. Esto ser\u00eda semejante a los documentos que indican que puede esperar una aplicaci\u00f3n de un gestor de ventanas que tan buenos resultados han dado y es un acercamiento al paradigma del HTML con hojas CSS en el cu\u00e1l el c\u00f3digo s\u00f3lo se encarga de decir qu\u00e9 hay que dibujar y algunos atributos mientras que el CSS se encarga de decir c\u00f3mo dibujarlo y el navegador lo dibuja. Con esto se lograr\u00eda una uniformidad bastante buena en la visualizaci\u00f3n, y los desarrolladores de librer\u00edas para la generaci\u00f3n de GUIs podr\u00edan centrarse en ofrecer una API m\u00e1s c\u00f3moda (o r\u00e1pida) a los desarrolladores en vez de tratar de ofrecer nuevas caracter\u00edsticas visuales que no necesariamente funcionaran de forma correcta en todos los sistemas de escritorio.<\/p>\n<p>Otro problema que discutimos era la dificultad que ten\u00edan para comunicarse aplicaciones desarrolladas con librer\u00edas diferentes. Esto, por ejemplo, queda patente en la existencia de algunas aplicaciones que no pueden copiar o pegar a otras (entre otras cosas). En este caso y dado el sistema actual, la soluci\u00f3n ser\u00eda un sistema de capas, as\u00ed en la capa superior estar\u00edan las aplicaciones, en la inferior el sistema de intercomunicaci\u00f3n prove\u00eddo por la librer\u00eda, y en la \u00faltima el entorno de intercomunicaci\u00f3n de entornos. Este deber\u00eda de nuevo ser definido por representantes de los desarrolladores de estos sistemas y ofrecer una forma un\u00edvoca de identificaci\u00f3n de aplicaciones y una forma segura de trasmisi\u00f3n de datos entre aplicaciones que usasen una segunda capa distinta.  De esta forma, cada cu\u00e1l podr\u00eda seguir usando internamente los sistemas de comunicaci\u00f3n propios (por ejemplo el Gnome VFS) con las ventajas que conlleve su uso de cara a otras aplicaciones que usen el mismo sistema, pero garantizando una serie de servicios m\u00ednimos de cara al resto de aplicaciones.<\/p>\n<p>Hay muchos otros temas que surgieron en la discusi\u00f3n, pero estos fueron los que m\u00e1s me llamaron la atenci\u00f3n. Me despido record\u00e1ndoos que  protocolos c\u00f3mo por ejemplo el HTTP usado para el env\u00edo de datos o el SMTP, usado para enviar e-mails, llevan a\u00f1os definidos y estandarizados y se han ido extendiendo conforme aumentaban las necesidades sin dejar de lados a las versiones anteriores, quiz\u00e1s por la suma de ambos factores est\u00e9n tan extendidos a d\u00eda de hoy. As\u00ed que recordad, usad est\u00e1ndares siempre que pod\u00e1is, as\u00ed conseguir\u00e9is unas aplicaciones m\u00e1s uniformes y agradables.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hace poco estuvimos discutiendo yo y algunos compa\u00f1eros de Polinux un par de temas acerca de aplicaciones interescritorio. En el siguiente art\u00edculo expongo algunos problemas, cu\u00e1l puede haber sido la causa del mismo y algunas soluciones propuestas que generalmente ser\u00e1n comunes: &#8220;Utilizar est\u00e1ndares consensuados&#8221;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[],"class_list":["post-42","post","type-post","status-publish","format-standard","hentry","category-software-libre"],"_links":{"self":[{"href":"https:\/\/klondike.es\/klog\/wp-json\/wp\/v2\/posts\/42","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/klondike.es\/klog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/klondike.es\/klog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/klondike.es\/klog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/klondike.es\/klog\/wp-json\/wp\/v2\/comments?post=42"}],"version-history":[{"count":0,"href":"https:\/\/klondike.es\/klog\/wp-json\/wp\/v2\/posts\/42\/revisions"}],"wp:attachment":[{"href":"https:\/\/klondike.es\/klog\/wp-json\/wp\/v2\/media?parent=42"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/klondike.es\/klog\/wp-json\/wp\/v2\/categories?post=42"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/klondike.es\/klog\/wp-json\/wp\/v2\/tags?post=42"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}