Libre, gratuito, portable y estándar

Discusiones sobre «estándares», «software libre», «software gratuito», «portabilidad» y cuestiones afines se dan muy a menudo. En la mayoría de ellas puede apreciarse que existen grandes confusiones que involucran a estos términos.

Desde varios ámbitos (por ejemplo, el Proyecto GNU) se insiste hasta el hartazgo en marcar diferencias importantes (como la de «gratuidad» y «libertad«), pero esto no parece suficiente para aclarar el equívoco. Este es el por qué de mi pequeño aporte.

Gratuidad y libertad

Algunos programas libres son gratuitos y otros son pagos. Algunos programas privativos son gratuitos y otros son pagos.

Usualmente se habla de «software libre» o «software privativo» en términos demasiado amplios. En rigor, lo que es «libre» o «privativa» es la licencia bajo la cual se distribuye el programa.

Una licencia es «libre» si garantiza al poseedor del programa los siguientes derechos:

  • Usar el programa, con cualquier propósito.
  • Analizar cómo funciona el programa, y adaptarlo a sus necesidades.
  • Distribuir copias del programa.
  • Distribuir las modificaciones hechas al programa.

Es inmediato notar que la disponibilidad del código fuente (el programa escrito en un lenguaje comprensible por los programadores) es indispensable para el ejercicio de estos derechos. Por esto que muchas veces se denomina a los programas distribuidos bajo licencias libres, programas de «código abierto» (opensource).

Un punto importante es que ninguna de estas cuatro condiciones hacen referencia al valor de comercialización del programa, sino solamente a qué cosas le está permitido hacer a su tenedor.

Si la licencia bajo la cual se distribuye un programa limita o restringe de alguna manera cualquiera de estos derechos, se dice que es una licencia «privativa«, «propietaria» o «no libre» .

Un programa distribuido bajo una licencia «privativa» puede volverse «libre» con el sólo acto, por parte de su autor o autores, de cambiar sus condiciones de licenciamiento. La inversa no es cierta: si un programa es libre, por más que su autor decida cambiar las condiciones de licenciamiento, cualquier persona que haya recibido el programa anteriormente, tendrá el derecho a redistribuirlo bajo una licencia libre. (Esta situación se ha dado en numerosas oportunidades, ante el intento de empresas productoras de programas distribuidos bajo licencias libres para capturar a sus usuarios limitando sus derechos.)

Dicho esto queda en evidencia que un programa puede ser distribuido gratuitamente pero bajo una licencia privativa. Existe una gran cantidad de ejemplos de esta situación. Lo que muchas veces se presta a confusión es que la mayoría del software distribuido bajo licencias libres puede obtenerse de forma gratuita y, en los casos en que resulta oneroso, se está pagando por la distribución del software y no por la cantidad de computadoras en que se utilizará.

Otra fuente de confusión es la utilización del término «software comercial» como sinónimo de «software privativo«. Es incorrecto pensar que sólo las licencias privativas permiten hacer negocios, o que las licencias libres niegan esta posibilidad. A la luz de la realidad puede verse que muchas empresas obtienen muy buenas ganancias de la venta de software (y servicios derivados) bajo licencias libres. Lo único que las licencias libres no permiten lograr es el establecimiento de monopolios.

Estándares y pseudo-estándares

El uso no estandariza. Lo que estandariza es la definición pública como un estándar.

Un estándar es un modelo de referencia o patrón. Muchas veces se llama erroneamente «estándar» (o «estándar de facto«) a algo por el simple hecho de ser de uso común. Un protocolo, formato o lenguaje no puede considerarse estándar si no existe una especificación completa y pública del mismo (no puede utilizarse como referencia algo que no se conoce).

En palabras de la Organización Internacional para la Estandarización (ISO): Los estándares son diseñados para ser implementados.

El ejemplo más claro quizás sea el formato .DOC utilizado por el procesador de textos Microsoft Word. El hecho de que millones de personas utilicen este formato para almacenar y distribuir sus documentos de texto, podrán convertirlo en un formato de uso común, pero jamás en un estándar. No puede serlo porque nadie conoce cómo se representan los datos en este tipo de archivos. Es cierto que hay programas que leen y escriben en archivos .DOC, pero han sido construidos realizando «ingeniería inversa«, una técnica que no garantiza la corrección de los resultados y que está penada por la ley en varios países del mundo (por ejemplo, en los EE.UU.).

Sobre lenguajes de programación

Para obtener programas realmente libres deben usarse lenguajes estándares y herramientas libres.

De la misma manera que ocurre con los formatos de almacenamiento y los protocolos comunicación, un lenguaje de programación no puede ser considerado estándar si su especificación completa no está documentada públicamente.

Muchas veces se habla sobre la «gratuidad» de un lenguaje de programación. En términos estrictos, carece de sentido preguntarse si un lenguaje es o no gratuito. Lo que sí cabe preguntarse es si es estándar o no. Por ejemplo, C es un lenguaje estándar (es un estándar ANSI), en tanto que Visual Basic no lo es. Lo que puede ser o no gratuito (y además, ser o no libre) es un compilador o un entorno de desarrollo (IDE) para determinado lenguaje.

Aún en el caso de lenguajes estándares, para los cuales existen entornos de desarrollo libres, hay un aspecto más a considerar: el uso de bibliotecas (o librerías) privativas. El caso más conocido de este tipo de situación es el de Java. El compilador Java de Sun aunque es gratuito no es libre y, a pesar de que existen compiladores libres como el de GNU, dicha libertad se pierde si el programador utiliza las bibliotecas privativas que distribuye (también gratuitamente) la empresa Sun (por ejemplo swing o awt).

Portabilidad y múltiples plataformas

Un programa libre no puede estar arbitrariamente ligado a una plataforma. Uno privativo tampoco debería estarlo.

Un concepto por muchos olvidado es el de la portabilidad del software. Parece ser que los años y millones invertidos por varias empresas para «enganchar» a los programadores, convenciéndolos de usar extensiones no estándares de ciertos lenguajes de programación o, peor aún, herramientas y lenguajes totalmente cerrados y privativos han rendido sus frutos. Lamentablemente muchos programadores no se preocupan de que sus programas puedan ser desarrollados y modificados en distintas plataformas de software (sistemas operativos).

Sin embargo, la portabilidad sigue siendo una propiedad importante de un programa: ¿cuántas buenas piezas de software han quedado obsoletas al morir el sistema operativo para el que fueron desarrolladas? ¿cuántas otras han sobrevivido gracias a la posibilidad de ser fácilmente migradas a cualquier sistema operativo?

Software libre que requiere software privativo

Un programa no es totalmente libre si de alguna manera requiere de software privativo.

Es realmente una muy mala idea desarrollar software que será distribuido bajo una licencia libre, utilizando (o requiriendo) herramientas privativas. Esto generalmente guarda una estrecha relación con el tema tratado en la sección anterior: la portabilidad.

Pero no termina allí. Cuando un programador decide utilizar herramientas privativas para un desarrollo, o producir programas que sólo se ejecuten en determinado sistema operativo, está imponiendo a otros posibles desarrolladores (si hablamos de un programa libre) y a los posibles usuarios, su decisión.

En el caso de los desarrolladores, la propuesta será generalmente descartada: a quienes participamos de la comunidad del software libre no nos resulta para nada interesante un programa libre que requiera de software privativo para su desarrollo o ejecución (excepto para clonarlo y realizar un desarrollo 100% libre, si realmente presenta ideas interesantes).

Muchos usuarios, lamentablemente, no estarán alertados de la situación. Descargarán gratuitamente o, peor aún, pagarán por un programa que los obliga a utilizar otros programas privativos y entrarán (o sumarán otra presión para permanecer) en el mundo de las restricciones arbitrarias.

Compra-venta de software

Microsoft (y otros) no venden software.

Otro error muy común es creer que empresas como Microsoft y otras que distribuyen software bajo licencias privativas, venden software.

Al leer el contrato de licencia de los programas distribuidos por estas empresas puede verse que lo único que su poseedor adquiere son los CDs (el medio físico), los manuales y la licencia de uso. Allí está claramente establecido que el software (del que el comprador sólo recibe una versión binaria ejecutable) es propiedad de la empresa proveedora. Esto significa que lo que estas empresas venden son derechos de utilización de sus programas (licencias de uso no exclusivo).

De la única manera en que uno puede comprar un programa, es bajo los términos de una licencia libre. Si el tenedor no posee el derecho a usarlo como lo desee, a modificarlo y adaptarlo a sus necesidades y a distribuir a terceros los cambios realizados, entonces no ha comprado un programa: apenas ha pagado por el derecho a usarlo bajo determinadas condiciones.

Peor aún es cuando se afirma (y lo he oído de boca de un alto ejecutivo de Microsoft) que lo que su negocio es la venta de «propiedad intelectual«. Nada más lejos de la realidad: lo primero que estas empresas retienen y se aseguran por todos los medios es la propiedad intelectual de sus productos (a lo sumo, podrían decir que la están alquilando con reservas).

Las licencias libres y la obligación de compartir las modificaciones

No se contrae ninguna obligación al usar o modificar software libre.

Muchos creen, haciendo una mala lectura del cuarto derecho enumerado en la definición, que las licencias libres de alguna manera obligan a redistribuir las modificaciones que uno pudiera realizar al programa en cuestión. Esto ahuyenta, justificadamente, a las empresas que podrían beneficiarse de la adaptación de un programa libre pero no quieren compartir estos cambios con su competencia.

La realidad es que el tenedor de un programa libre tiene el derecho (y no la obligación) de distribuir el programa modificado. ¿Quiénes hacen uso de este derecho? Todos aquellos a quienes les interesa que las modificaciones sean revisadas, corregidas y quizás aumentadas por el resto de los programadores involucrados en el desarrollo del programa. ¿Quiénes no hacen uso de él? Quienes deseen obtener una ventaja competitiva respecto de su competencia basada en la utilización del programa modificado.

La confusión se hace aún mayor en el caso de la licencia GPL (la licencia libre más utilizada), ya que ésta sí obliga a la publicación de los cambios realizados, pero solamente en el caso en que el programa sea redistribuido. Esto significa que si alguien (persona o empresa) modifica un programa para uso propio está fuera del alcance de esta obligación.

Conclusiones

A mi juicio, la explicación de la generalización de estas confusiones tiene dos vías:

  • Una multimillonaria inversión en marketing (a veces disfrazado de «educación«) de ciertas empresas ligadas a la venta de licencias de uso de software, que mediante mecanismos de distracción (y la confusión es uno de los más efectivos) intentan convencer a sus potenciales clientes de que afortunadamente no hay alternativa a sus exitosos productos y que el modelo de ventas de licencias es la base del desarrollo de la informática.
  • El desinterés (muchas veces por comodidad) de gran parte de la comunidad informática (programadores y educadores, principalmente) que no prestan atención al impacto de sus elecciones en los derechos de sus clientes (y en los propios). Desafortunadamente, muchos toman a la ligera las cuestiones relacionadas con las formas de licenciamiento, la portabilidad, los estándares, y solo prestan atención a las bondades técnicas de un programa.

Por otra parte, el aumento de la cantidad de personas involucradas con el software libre y la difusión de estas ideas echa presión sobre muchas empresas que, paulatinamente, se ven obligadas a cambiar su modelo de negocio. Así es cómo Sun Microsystems ha tenido que cambiar la licencia de su sistema operativo Solaris y ha prometido la liberación completa de la plataforma Java.

Es mi deseo que cada día la confusión vaya cediendo para poder dejar atras los preconceptos y las confusiones que han impedido el avance de muchos aspectos de la informática, en favor del establecimiento de monopolios y del control de los usuarios de software.

Dejar un comentario?

6 Comentarios.

  1. Excelente artículo. Creo que no hay mucho más que aclarar, ya que está todo dicho.

  2. He leido varios artículos de tu blog. Si bien estoy de acuerdo con el apoyo al software libre, veo que das mucho énfasis a los argumentos antimercantilistas y anticapitalistas. En este artículo haces referencia a la supuesta conspiración («multimillonaria», por supuesto) de las empresas. En otro desmereces a Bill Gates porque «tiene 9 dólares por cada habitante del planeta», etc. También dices que en lo de «William Gates III» se nota que es rico, estereotipo que ignora que los negros más pobres usan también esa nomenclatura.

    En lo personal considero esas tácticas de «moralmente superior» como, valga la redundancia, inmorales. Pero sé que dan muy buenos resultados en lo político cuando se trata de que los gobiernos impongan el uso de software libre o limitaciones al uso del software propietario.

    Algo que no pueden comprender quienes piensan así es que las empresas de software propietario ven a sus programas como bienes consumibles, de «abrir y usar» (off-the-shelf). Detrás del desarrollo de estos programas no ha solamente programadores: hay estudios de mercado, diseñadores encargados de la interfase, publicidad, etc. Todo con la meta de que el programa le sea útil a la mayor cantidad de gente posible y que la transacción en términos prácticos (mas no legales) termine con la instalación del programa.

    Es por esto que aquellas compañías se ven obligadas a monopolizar la «producción y distribución» del programa. A diferencia de algo tangible como un vino, el producto puede ser duplicado con un mínimo esfuerzo/costo y por lo tanto revendido. Si existiese un holodeck/duplicador al estilo de Star Trek, posiblemente todo el comercio mundial cambiaría o se buscaría medios para evitar la duplicación de ciertos productos «exclusivos».

    De manera análoga, algunos disfrutamos ensamblando nuestras PCs, la mayoría de personas sin embargo compran PCs ensambladas de marcas como HP, IBM, etc. a mayor precio por el simple hecho de tener un producto en serie que funcionará ni bien lo enchufen en casa. Y lo más seguro es que estas personas nunca llamarán al soporte técnico de la compañía que fabricó la máquina. El negocio se terminó en la tienda y cuando le agreguen periféricos, serán con seguridad de otras marcas. Aquellos pequeños negocios que ensamblan PCs se pueden llenar la boca diciendo, con razón, que las ensambladas a medida son más baratas, más rápidas y podrán tener soporte técnico personalizado; pero eso no quitará que el mercado se vaya por PCs hechas por «grandes» marcas ni hace a estas últimas intrínsecamente malas por el hecho de ser multimillonarias.

    La última conferencia sobre linux y software libre a la que asistí en Lima me pareció una convención de piqueteros. La mención de ideas y soluciones quedó eclipsada por las constantes quejas del imperialismo, de los millones de Gates, del machismo, la globalización, etc. Me recordó a la parodia de Les Luthiers sobre los cantantes autóctonos («Lenin y McCartney»). Todo esto me pareció sinceramente patético, sobre todo cuando tuvieron que apelar al Power Point porque su StarOffice se negó al leer sus archivos.

  3. Rectifico: Su OpenOffice se negó a abrir sus diapositivas.

  4. Mirko:

    Antes que nada, debo decirte que es un placer recibir críticas como la tuya. Aunque no estoy de acuerdo con muchas de tus opiniones, rescato su claridad y tu nivel al exponerlas.

    Con respecto a las «conspiraciones» de las empresas, sólo he dicho algo que es evidente: el departamento de marketing de muchas empresas de desarrollo de software tiene un presupuesto del mismo orden que el de soporte técnico, y se dedican millones a campañas destinadas a crear confusión en los consumidores (me remito, por ejemplo, al «Get the facts» de Microsoft).

    Con respecto a Bill Gates, no lo he desmerecido por ser millonario ni por ser aristócrata. Si mencioné su nombre completo y su linaje fue haciendo referencia al hecho de que muchas veces se lo muestra como un joven soñador que hizo su fortuna con sus ideas, cuando en realidad tuvo un fuerte apoyo económico y comercial de su madre y los asociados de esta.

    Comparto tu opinión sobre la visión que tienen las empresas de venta de licencias acerca de sus productos, pero puedo mostrarte cientos de casos en donde los esfuerzos de estas no están puestos, ni mucho menos, en «que el programa le sea útil a la mayor cantidad de gente posible», sino muchas veces en capturar a los usuarios limitando sus libertades y avanzando contra sus derechos.

    No puedo dejar de decirte que no me considero «moralmente superior» a nadie, ni mucho menos. Esto no invalida que tenga mi propio criterio acerca de la moral y mi escala de valores.

    Finalmente, coincido contigo en la lamentable actitud «tirabombas» de muchas personas ligadas al movimiento del software libre. Es por esto que, aunque puedo equivocarme, intento ser lo más racional posible.

    Saludos y, nuevamente, gracias por hacerme llegar tu opinión.

  5. Respondo a este tema aunque ya pasó más de un mes en el que se publicó..
    Mirko, tenes razón al afirmar que las empresas de software propietario ven a sus programas como bienes consumibles, es importante que tengas en cuenta que el software libre apuesta al software como un servicio, y no como un producto. Esto trae muchas ventajas que se pueden contemplar en el siguiente documento, en forma de diapositivas:
    http://mnm.uib.es/gallir/presentacions/empresa-mallorca.pdf
    A partir de la página 18 estan enumeradas las cosas que quería compartir.
    De esta forma, las empresas se ven obligadas a monopolizar la “producción y distribución” del programa, sisi es cierto, pero solo para ganar GRANDES cantidades de dinero (Microsoft) y crear escasos beneficios para los clientes.
    Es importante que la industria del software pase de la venta de software como producto, a la venta de software como un servicio, con todos los beneficios que esto aporta.

    Con respecto al gobierno, tomo un ejemplo. Imaginate que una empresa por ejemplo Coca-Cola, diseña una máquina expendedora y protege su producto de manera que no se pueda ver como está construido (algo bastante irreal pero bueno es un ejemplo). Nosotros solamente pagamos por el uso de dicha máquina.
    Si la máquina tiene alguna forma de comunicarse con Coca-Cola para informarle sobre las gaseosas consumidos, con la hora y fecha en que fueron compradas en una determinada máquina, realmente a nadie le importaría mucho.
    Ahora imaginate una máquina con el poder de conectarse en red con millones de otras máquinas similares, que le sirve al mundo como un medio de comunicación masivo, por donde pasan nuestros datos personales, que utilizemos para comprar productos, manejar cuentas bancarias, enviar información confidencial, etc.
    No sería lógico que la máquina (producto) utilize un software (servicio) totalmente transparente? del cual podamos saber que es lo que realmente pasa con la inforamción y lo podamos modificar como quisieramos?
    Sobre todo a nivel del estado…
    Esto no solamente implica como decís en tu ejemplo de una pc original y una clon a la cual podemos realizar modificaciónes a nuestro gusto para mejorarla. Implica a nuestros derechos, nuestra privacidad.
    En todo monopolio, siempre existe la alta posibilidad de abuso (como ejemplifica javier con las licencias que atentan contra nuestros derechos y nuestra privacidad).
    Por esto y mucho más es que defiendo que el software libre debería ser usado en el gobierno. A nivel usuario final, cada uno puede hacer lo que quiera con su privacidad ;)
    Esta es mi humilde opinión, y es lo que creo en este momento, si bien uso linux hace tan solo un año y medio y esto del software libre es algo bastante nuevo para mí.
    Espero que haya sido entendible lo que escribí.

    Un saludo.

Deje un comentario

NOTA - Puede usar estosHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>