2003-07-20 16:45
Definición:
software de interfaz abierto es aquél que tiene uno o varios interfaces bien definidos y puede usarse libremente a través de esos interfaces.
A lo largo de los últimos meses, me he dado cuenta que que el concepto de software libre, o software de fuentes abiertas (open source software) se está quedando obsoleto. En muchísimos casos, el software no se utiliza en el ordenador local, no se baja, sino que está instalado en un ordenador remoto. En el caso de que esté en el ordenador local, no te interesa, ni se te ocurre, mirar a los fuentes para ver qué diablos va mal, por su misma complejidad (a mí si me casca el Evolution, lo último que se me ocurre es meterlo en el debugger, y mandar un parche). Por lo tanto, no es tan importante que el software sea libre, sino gratuito, ni que las fuentes estén disponibles, salvo en casos de que sean programas pequeños y manejables.
Sin embargo, el software de interfaces libres se está desarrollando cada vez más. Un interfaz libre permite, si no modificar un programa, al menos modificar su comportamiento, y, en muchos casos, permite hacer cualquier cosa con un programa.
Por ejemplo, esta misma
Blogalia. Blogalia permite el acceso a través de web, y puedes bajarte o subir contenidos de forma automática desde tu propio programa (en
Desarrollo,
Cacharreando y
Blogaliómetro hay diferentes ejemplos). Permite además, interaccionar con él a través del interfaz XML-RPC, al menos en muchas cosas (y este programa que estoy usando, el Blogatex, hace precisamente eso), y puedes bajarte los contenidos en RDF, y agregarlos a
tu página web, si te apetece. Sin embargo, no podemos acceder a los fuentes; aunque no es software de fuentes abiertas propiamente dicho, sería un software de interfaz abierto. Más abierto, en ese sentido, que
Slash, que sólo tiene diferentes interfaces de "bajada" (XML, RDF, RSS) y uno solo de subida: a través del formulario (aunque esto también se puede hacer mediante un programa, no es tan fácil como hacerlo a través del XML-RPC).
Miles de sitios, aún sin saberlo, están abrazando esta filosofía del software de interfaz abierto: Google ofrece un API que usa SOAP, Amazon trabaja con interfaces en XML y SOAP,
Technorati ofrece un interfaz basado en REST (es decir, en pasar órdenes mediante una dirección web) y XML... en fin, muchísimos sitios son de interfaz abierto, en menor o mayor grado.
Pero también muchos programas no libres lo son. El mínimo grado de interfaz abierto es el permitir skins; es decir, cambiar la apariencia externa; eso, en principio, no cambia la funcionalidad. Sin embargo, juegos como el Quake o el Half-Life permiten mods, modificaciones del comportamiento completo, hasta el punto que un mod, Counter-Strike, es más famoso que el juego original; y en otros casos, como el Unreal, tienen un lenguaje de programación que permite cambiar el comportamiento de los propios bots, los personajes que salen en el juego dispuestos a matar al usuario.
Como se ve, el software de interfaz abierto es un concepto técnico, pero es también una actitud: no sólo hay que hacer ganchos para que la gente pueda usar el software fácilmente, sino que también hay que publicitarlo, y explicar fácilmente como usarlo; si es posible, dando algún programa cliente de ejemplo.
En fin, sirva esta historia para presentar lo que creo que es un nuevo concepto, y para animar a la gente a hacer sus programas y sitios web, si no de fuentes abiertas, al menos de interfaz abierto. Ahora solo me falta un logo y una página web exclusiva. ¿Alguien se anima?