Por qué «software libre» es mejor que «código abierto»
Este artículo ha sido sustituido por una versión sustancialmente modificada y mejorada disponible bajo el título Por qué el «código abierto» pierde de vista lo esencial del software libre. Esta versión original se conserva sólo como referencia histórica.
Aunque el software libre con cualquier otro nombre le daría la misma libertad, el nombre que usemos hace una gran diferencia: palabras diferentes transmiten ideas diferentes.
En 1998, algunas de las personas de la comunidad de software libre empezaron a usar el término «software de código abierto» (del inglés «open source software») en vez de «software libre» para describir lo que hacen. El término «código abierto» se asoció rápidamente con una aproximación diferente, una filosofía diferente, valores diferentes, e incluso un criterio diferente por el cual las licencias son aceptables. El movimiento por el software libre y el movimiento por el código abierto hoy son movimientos separados con visiones y metas diferentes, aunque podamos y trabajemos juntos en algunos proyectos prácticos.
La diferencia fundamental entre los dos movimientos está en sus valores, sus formas de mirar al mundo. Para el movimiento por el código abierto, el asunto sobre si el software debiera ser de código abierto es una cuestión práctica, no ética. Como alguien dijo, «el código abierto es una metodología de desarrollo; el software libre es un movimiento social». Para el movimiento por el código abierto, el software que no sea libre es una solución ineficiente. Para el movimiento por el software libre, el software que no es libre es un problema social y el software libre es la solución.
Relación entre el movimiento por el software libre y el movimiento por el código abierto
El movimiento por el software libre y el movimiento por el código abierto son como dos frentes políticos entre la comunidad de software libre.
Los grupos radicales de los años 60 desarrollaron una reputación para el faccionalismo: las organizaciones se separaban por los desacuerdos sobre los detalles de la estrategia, y luego se trataban como enemigas. O al menos tal es la imagen que se tiene de ellas, sea o no cierta.
La relación entre el movimiento por el software libre y el movimiento por el código abierto es todo lo contrario a esa figura. No estamos de acuerdo en los principios básicos, pero sí más o menos en las recomendaciones prácticas. Por ende, podemos y hacemos trabajos juntos en muchos proyectos específicos. No consideramos al movimiento por el código abierto un enemigo. El enemigo es el software privativo.
No estamos en contra del movimiento por el código abierto, pero no queremos que nos mezclen con ellos. Sabemos que han contribuido a nuestra comunidad, pero nosotros creamos esta comunidad, y queremos que las gente lo sepa. Queremos que las personas asocien nuestros logros con nuestros valores y nuestra filosofía, no con la suya. Queremos ser escuchados, no oscurecidos detrás de un grupo con visiones distintas. Para prevenir que las personas piensen que somos parte de ellos, nos esforzamos en evitar usar la palabra «abierto» para describir al software libre, o su contrario, «cerrado», para hablar sobre el software que no es libre.
Así que, por favor, mencione al movimiento por el software libre cuando hable sobre el trabajo que hemos realizado, y el software que hemos programado; tales como el sistema operativo GNU/Linux.
Comparando los dos términos
El resto de este artículo compara los dos términos: «software libre» y «código abierto». Muestra por qué el término «código abierto» no resuelve ningún problema, de hecho crea algunos.
Ambigüedad
El término «software libre» tiene un problema de ambigüedad [1], un significado indeseado: «software que se puede obtener por coste cero»; y por otro lado un significado deseado: «software que le da al usuario ciertas libertades». Nosotros hemos direccionado este problema publicando una definición más precisa de software libre, pero esta no es una solución perfecta, no puede eliminar el problema completamente. Un término correcto que no fuese ambiguo sería mejor, si no tuviese otros problemas.
Desafortunadamente, todas las alternativas en inglés para «software libre» tienen problemas en sí mismas. Hemos buscado varias alternativas que se han sugerido, pero ninguna es lo suficientemente «correcta» como para que cambiar resulte una buena idea. Todo reemplazo propuesto para «software libre» tiene un tipo de problema semántico de la misma clase, o peores. Y esto incluye «software de código abierto».
La definición oficial de «software de código abierto», tal como fue publicada por la Open Source Initiative, es muy parecida a nuestra definición de software libre. Sin embargo, es un poco más pobre respecto a algunas cosas, y han aceptado unas pocas licencias que nosotros consideramos inaceptablemente restrictivas para los usuarios. Sin embargo, el significado obvio para la expresión «software de código abierto» es «puede observar el código fuente». Este es un criterio mucho más débil que el de software libre; incluye al software libre, pero también a programas privativos, incluyendo a XV y a Qt bajo su licencia original (antes de la QPL).
El significado obvio para «código abierto» no es el significado que pretenden sus partidarios. El resultado es que la mayoría de las personas malentienden lo que esos partidarios están defendiendo. A continuación está cómo definió el escritor Neal Stephenson a «código abierto»:
Linux es software de «código abierto», que significa, simplemente, que cualquiera puede obtener copias de los archivos de su código fuente.
No creo que él buscara rechazar o disputar deliberadamente la definición «oficial». Pienso que aplicó simplemente las convenciones del idioma inglés para surgir con uno de los significados del término. El estado de Kansas publicó una definición similar:
Use el software de código abierto (OSS, por sus siglas en inglés). OSS es software para el cual el código fuente está libre y públicamente disponible, a pesar que los acuerdos de licencia específicos varían en lo que uno puede hacer con ese código.
Por supuesto, las personas del código abierto han tratado de luchar contra esto publicando una definición precisa del término, tal como hemos hecho nosotros con «software libre».
Pero la explicación de «software libre» es simple, una persona que ha captado la idea de «libertad de expresión, no cerveza gratis» [2] no se confundirá otra vez. No existe una forma concisa para explicar el significado oficial de «código abierto» y mostrar claramente por qué la definición natural es la incorrecta.
Miedo a la libertad
El argumento principal para el término «software de código abierto» es que «software libre» hace que algunas personas se sientan incómodas. Eso es verdad: hablar sobre libertad, sobre asuntos éticos, sobre responsabilidades así como también conveniencia, es pedirle a las personas que piensen sobre cosas que generalmente ignoran. Esto puede causar incomodidad, y algunas personas pueden rechazar la idea debido a eso. De ello no se deduce que la sociedad estaría mejor si dejáramos de hablar sobre estas cosas.
Años atrás, los desarrolladores de software libre se dieron cuenta de esta reacción incómoda, y algunos comenzaron a buscar un intento por evitarla. Encontraron que callándose sobre la ética y la libertad y hablando sólo sobre los beneficios prácticos inmediatos de cierto software libre, podrían ser capaces de «vender» el software más eficientemente a ciertos usuarios, especialmente las empresas. El término «código abierto» se ofrece como una forma de más de lo mismo, una forma de ser, «más aceptable a los negocios». Los puntos de vista y los valores del movimiento por el código abierto giran alrededor de esta decisión.
Esta aproximación ha demostrado ser efectiva, en sus propios términos. Hoy muchas personas están cambiando a software libre por razones puramente prácticas. Eso es bueno, tan lejos como llegue, ¡pero no es todo lo que necesitamos hacer!. Atraer usuarios al software libre no es todo el trabajo, sólo el primer paso.
Tarde o temprano se invitará a estos usuarios a cambiarse nuevamente a software privativo debido a alguna ventaja práctica. Incontables compañías buscan ofrecer tal tentación, y ¿por qué renunciarían los usuarios?. Sólo si han aprendido a valorar la libertad que les da el software libre, por su propio bien. Está en nosotros difundir esta idea, y para poder hacerlo, tenemos que hablar sobre libertad. Una cierta cantidad de la aproximación «mantenerse en silencio» a los negocios puede ser útil para la comunidad, pero también debemos hablar mucho sobre libertad.
En el presente, tenemos montones de «mantenerse en silencio», pero no las hablamos lo suficiente sobre libertad. La mayoría de las personas involucradas con el software libre poco dicen sobre libertad, usualmente porque buscan que sea «más aceptable para las empresas». Los distribuidores de software muestran especialmente este patrón. Algunos distribuidores del sistema operativo GNU/Linux agregan paquetes privativos al sistema libre básico, e invitan a los usuarios a considerar esto una ventaja, más que un paso atrás respecto a la libertad.
Estamos fracasando en mantener el flujo entrante de usuarios de software libre, fracasando en enseñarle a las personas sobre la libertad y nuestra comunidad tan pronto como entran en ella. Esta es la razón por la cual el software que no es libre (como Qt cuando se volvió popular por primera vez), y distribuciones de sistemas operativos que no son libres parcialmente, encuentran tal suelo fértil. Dejar de usar la palabra «libre» en este momento sería un error. Necesitamos hablar más sobre libertad, no menos.
Si aquellos que usen el término «código abierto» traen más usuarios a nuestra comunidad, es una contribución, pero el resto de nosotros tendrá que trabajar aún más para que esos usuarios presten atención a la cuestión de la libertad. Tenemos que decir «¡es software libre y te da libertad!», más y más alto que nunca.
¿Ayudaría una marca registrada?
Los defensores del «software de código abierto»; trataron de hacerlo una marca registrada, diciendo que les permitiría prevenir su mal uso. Esta iniciativa fue descartada más tarde, dado que el término era demasiado descriptivo para ser una marca registrada. Por ende, el estado legal de «código abierto» es el mismo que el de «software libre»: no existen restricciones legales en su uso. He escuchado acerca informes de varias compañías que llaman a los paquetes de software de «código abierto» aún cuando no encajan en la definición oficial, y he visto algunos casos por mi cuenta.
Pero, ¿hubiera significado una gran diferencia usar un término que es una marca registrada?. No necesariamente.
Las compañías también hicieron declaraciones que daban la impresión que un programa es «software de código abierto» sin decirlo explícitamente. Por ejemplo, una declaración de IBM, sobre un programa que no encajaba en la definición oficial, decía esto:
Como es usual en la comunidad del código abierto, los usuarios de la tecnología ... también podrán colaborar con IBM ...
Esto no decía realmente que el programa era de «código abierto», pero muchos lectores no se dieron cuenta de ese detalle. (Yo debería señalar que IBM estaba tratando sinceramente hacer que este programa fuese software libre, y más adelante adoptó una licencia que sí lo hace software libre y de «código abierto»; pero cuando se hizo dicha declaración, el programa no calificaba como ninguno).
Y aquí está cómo Cygnus Solutions, que se formó para ser una compañía de software libre y posteriormente se diversificó (por decirlo de algún modo) con software privativo, publicitaba algunos productos de software privativo:
Cygnus Solutions es líder en el mercado de código abierto y recientemente ha lanzado dos productos en el mercado de [GNU/]Linux.
A diferencia de IBM, Cygnus no trataba de hacer que esos paquetes fuesen software libre, y los paquetes no se acercaban a serlo. Pero Cygnus no dijo realmente que esos eran «software de código abierto», sólo hicieron uso del término para darles esa impresión a los lectores poco atentos.
Estas observaciones sugieren que una marca registrada no habría prevenido la confusión que se genera con el término «código abierto».
Malinterpretaciones (?) de «código Abierto»
La definición de código abierto es suficientemente clara, y es bastante claro que no incluye al típico programa que no sea libre. Entonces podría pensar que «compañía de código abierto» significa una en que sus productos son software libre (o están cerca de serlo), ¿cierto?. Desafortunadamente, varias compañías están tratando de darle un significado diferente.
En el encuentro «Open Source Developers Day» en agosto de 1998, varios de los desarrolladores comerciales invitados dijeron que pretendían hacer software libre sólo una parte de su trabajo (o de «código abierto»). El centro de su negocio está en el desarrollo de complementos privativos (software o manuales) para vender a los usuarios de dicho software libre. Nos piden que consideremos esto como legítimo, como parte de nuestra comunidad, porque algo del dinero se dona al desarrollo de software libre.
En efecto, estas compañías apuntan a ganar el prestigio favorable del «código abierto» para sus productos de software privativo, aún cuando esos no son «software de código abierto»; porque tienen alguna relación con el software libre o porque la misma compañía también mantiene algún producto de software libre. (El fundador de una compañía dijo casi explícitamente que pondría, en el paquete libre que mantienen, tan poco de su trabajo como la comunidad aceptara.).
Con el paso de los años, muchas compañías han contribuido al desarrollo de software libre. Algunas de estas compañías desarrollaban en principio software que no era libre, pero las dos actividades eran distintas. Por ende, podíamos ignorar sus productos que no eran libres y trabajar con ellos en los proyectos de software libre. Luego, les podríamos agradecer honestamente sus contribuciones al software libre, sin hablar del resto de lo que hicieron.
No podemos hacer lo mismo con estas nuevas compañías, porque no nos dejarían. Estas compañías invitan activamente al público a combinar todas sus actividades conjuntamente; quieren que nosotros consideremos su software que no es libre tan favorablemente como consideraríamos a una contribución real, aunque no sea una. Se presentan como «compañías de código abierto», esperando que tengamos un sentimiento inciertamente cálido sobre ellas, y que seremos de mente incierta en aplicarlo.
Esta práctica manipuladora no sería menos dañina si se hiciese usando el término «software libre». Pero las compañías no parecen usar el término «software libre» de ese modo; tal vez su asociación con el idealismo no lo hace parecer propicio. El término «código abierto» abrió la puerta para esto.
En una feria a finales de 1998, dedicada al sistema operativo denominado frecuentemente como «Linux», el locutor era un empresario de una muy conocida compañía de software. Probablemente fue invitado a cuenta de la decisión de su compañía de «dar soporte» a ese sistema. Desafortunadamente, su forma de «dar soporte» consistía en publicar software que no era libre que funcionase con el sistema. En otras palabras, usar nuestra comunidad como un mercado pero sin contribuir a ella.
Él dijo «no hay manera que hagamos de código abierto nuestros productos, pero tal vez los haremos de código abierto ‘internamente’. Si permitimos que nuestro personal de atención al cliente tenga acceso al código fuente, podrían corregir errores para los clientes, y podríamos proporcionar un mejor producto y un mejor servicio». (Esta no es una cita exacta, dado que no anoté sus palabras, pero capta la esencia.)
Las personas en la audiencia después me comentaron «él no entiende el concepto únicamente». Pero, ¿es así?, ¿qué concepto no entendía?
No es que él no captase el concepto del movimiento por el código abierto. Ese movimiento no dice que los usuarios deberían tener libertad, sólo que permitir que más personas puedan mirar el código fuente y ayudar a mejorarlo hace su desarrollo más rápido y mejor. El empresario comprendía completamente ese punto. Sin intención de satisfacerlo por completo, usuarios incluidos, estaba considerando implementarlo parcialmente, dentro de la compañía.
La idea que se le escapaba es el concepto que el «código abierto» sediseñó para no considerar la idea que los usuarios merecen libertad.
Difundir la idea de libertad es un gran trabajo, necesita de su ayuda. Esa es la razón por la cual en el Proyecto GNU nos apegamos al término «software libre», para que podamos ayudar a hacerlo. Si siente que libertad y comunidad son importantes por sí mismas, no solamente por la conveniencia que brindan, únase a nosotros en el uso del término «software libre», por favor.
Notas
- Joe Barr escribió un artículo titulado Live and let license (Vive y deja licenciar) en el que expone su punto de vista acerca de este asunto.
- El documento de Lakhani y Wolf sobre la motivación de los desarrolladores de software libre (texto en inglés) dice que una fracción considerable está motivada por la idea que el software debería ser libre. Esto es a pesar del hecho que hayan entrevistado a los desarrolladores en SourceForge, un sitio que no defiende la idea que este es un asunto ético.
Este ensayo está publicado en el libro Software libre para una sociedad libre: Selección de ensayos de Richard M. Stallman.