5 de diciembre de 2007

Libre, gratuito, portable y estándar

Discusiones sobre "estándares", "software libre", "software gratuito", "portabilidad" y cuestiones afines se dan muy a menudo.

(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.

Gratuidad y libertad

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

software libre es cuestion de libertad no de precio
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).

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.

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 [3] 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.

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).

0 comentarios:

 
Design by Wordpress Theme | Bloggerized by Free Blogger Templates | coupon codes