Capítulo 10. Libertad La noción encarnada en la palabra "libertad" constituye uno de los grandes dispositivos de marketing de todos los tiempos. Los fabricantes de cereales saben que los niños se esforzarán en tragar tazones de azúcar para obtener un premio gratis. Las tiendas saben que las personas gustosamente les darán sus nombres y direcciones si tienen la oportunidad de ganar algo gratis. A los anuncios de automóviles les encanta enfatizar la libertad que un nuevo automóvil ofrecerá al dueño. Por supuesto, Microsoft también conoce este hecho. Una de sus grandes campañas publicitarias enfatiza la libertad de crear nuevos documentos, escribir grandes novelas, jugar con fotografías y simplemente hacer lo que quieras con una computadora. "¿Dónde quieres ir hoy?" preguntan los anuncios de Microsoft. Microsoft también reconoce el poder puro de obsequiar algo. Cuando Bill Gates vio que el navegador de Netscape emergía como una gran amenaza competitiva, primero compró una versión de la competencia y luego escribió su propia versión de un navegador web. Microsoft regaló sus versiones a título gratuito. Esta movida audaz cerró la canilla de ingresos de Netscape, que tuvo que reducir su precio a cero para poder competir. Por supuesto, Netscape no tenía los ingresos de un sistema operativo que lo respaldara para pagar el alquiler. Netscape se quejó y, finalmente, el Departamento de Justicia presentó una demanda para decidir si el software gratuito de Microsoft era solo un complot para que más personas pagaran mucho dinero por su no tan gratuito sistema operativo Windows. El hecho de que Microsoft ahora esté amenazado por un grupo de personas que se encuentran regalando un sistema operativo gratuito presenta una intensa ironía. La palabra "libre" tiene un significado mucho más complicado y matizado dentro del Movimiento del Software Libre. De hecho, a muchas personas que regalan su software ni siquiera les gusta la palabra "gratis" y prefieren usar "abierto" para describir el proceso de compartir. En el caso del software libre, no se trata simplemente de una campaña publicitaria para que la gente se sienta bien con la compra de un producto. Tampoco es un hábil juego de manos de marketing para centrar la atención de la gente en un obsequio mientras el mago cobra el precio completo por un producto. La palabra "libre" se refiere más a una forma de vida. Las personas que escriben el código utilizan la palabra de la misma manera que la usaron los Padres Fundadores de los Estados Unidos. Para muchos de ellos, la revolución del software libre también fue concebida en libertad y dedicada a ciertos principios como el hecho de que todos los hombres y mujeres tienen ciertos derechos inalienables de cambiar, modificar y hacer lo que quieran con su software en la búsqueda de la felicidad. Utilizar la palabra "libre" es fácil de hacer. Definir lo que significa lleva mucho más tiempo. La Declaración de Independencia se redactó en 1776, pero los gobiernos coloniales lucharon y se esforzaron por crear un gobierno libre mediante la ratificación de la actual Constitución de los Estados Unidos en 1787. La Declaración de Derechos llegó poco después, y la Corte Suprema sigue luchando continuamente con la definición de los límites de libertad descritos en dicho documento. Se podría decir que gran parte de la historia política de los Estados Unidos es un extenso debate sobre el significado de las palabras "país libre". El movimiento del software libre no es diferente. Es fácil para una persona obsequiar su software de forma gratuita. Es mucho más difícil atraer y organizar un ejército para enfrentarse a Microsoft y dominar el mundo. Eso requiere una definición adecuada de la palabra "libre" para que todos entiendan los derechos y limitaciones detrás de la palabra. Si se desea ganar la batalla, todos deben estar en la misma sintonía. Todo el mundo necesita entender lo que significa "software libre". La historia del mundo del software libre también se encuentra llena de debates extensos que definen la libertad que viene con el código fuente. Muchos se preguntan si se trata más de darle algo a cambio de nada al usuario, o si se trata de empoderarlo. ¿Esta libertad viene con alguna responsabilidad? ¿Cuáles deberían ser? ¿Cómo se ejerce la libertad? ¿Es el aprovechamiento gratuito una parte adecuada de la libertad? Durante los primeros años del cómputo, no existían verdaderos debates. El software era gratuito porque la gente simplemente lo compartía entre sí. Salían revistas como Creative Computing y BYTE que publicaban el código fuente de los programas, ya que esta era una manera más simple de compartir información. La gente incluso escribiría los datos ellos mismos. Las computadoras cuestan dinero y lograr que funcionen era parte del desafío. Compartir software era solo parte de la buena vecindad. Si alguien necesitaba pedir prestado tu arado, se lo prestabas cuando no lo estabas usando. Esto cambió cuando las corporaciones reconocieron que podían proteger el software con derechos de autor y comenzar a cobrar dinero por él. A la mayoría de la gente le encantó este arreglo porque la competencia trajo nuevos paquetes y herramientas al mercado y la gente estaba más que dispuesta a pagar por ellos. ¿De qué otra manera van a comer los programadores y los escritores de manuales? Algunas personas consideraron que esto era un desastre. Richard Stallman vio cómo cambiaba el mundo desde su oficina en los laboratorios de inteligencia artificial del MIT. Stallman es el mejor hacker, si usamos la palabra en el sentido clásico. Al principio, la palabra solo describía a alguien que sabía programar bien y le encanta hurgar en el interior de las computadoras. Solo tomó su tono más malicioso más tarde, cuando los medios lograron agrupar a todos aquellos con la capacidad de manipular computadoras en el mismo campo peligroso. Los hackers suelen utilizar el término "cracker" para referirse a estas personas. Stallman es un modelo del hacker. Es estridente, súper inteligente, muy lógico y completamente honesto. La mayoría de las corporaciones mantienen a sus hackers encerrados en un cuarto trasero porque estos rasgos parecen ahuyentar a los clientes e inversores que solo quieren dulces mentiras en sus oídos. Stallman nunca fue ese tipo de persona. Observó el floreciente control corporativo del software y no le gustó ni un poco. Su libertad se veía lentamente reducida, y él no era del tipo que simplemente se sentaba y no decía nada. Cuando Stallman dejó el laboratorio de IA en 1984, no quiso ser controlado por sus políticas. Las universidades comenzaron a adoptar muchas de las mismas prácticas que las corporaciones en la década de 1980, y Stallman no podía ser una excepción especial. Si el MIT iba a pagarle un salario, el MIT sería dueño de su código y de las patentes que surgieran de él. Incluso el MIT - un lugar mucho más genial que la mayoría - no pudo acomodarlo en lo personal. No se fue muy lejos, sin embargo, puesto que después de establecer la Free Software Foundation, mantuvo una oficina en el MIT, primero extraoficialmente y luego oficialmente. Una vez que no estaba "en el personal", las reglas se volvieron diferentes. Stallman recurrió a la consultoría por dinero, pero era una consultoría con un retruécano. Solo trabajaría para empresas que no pusieran restricciones al software que creó. Esto no era simple de hacerlo pasar. Insistía en que cualquier trabajo que hiciera para la Corporación X también podría compartirse con las Corporaciones Y y Z, incluso si fueran competidores directos. No era la manera en la que se hacían las cosas en la década de 1980. Era la década en que las empresas descubrieron cómo ocultar el código fuente de un programa distribuyendo solo una versión legible por máquina. Esperaban de esta manera controlar su producto, lo que les permitiría socavar a las personas que podrían intentar robar sus ideas y su propiedad intelectual. Stallman pensó que estaba acerrojando su capacidad para hurgar dentro de la computadora y arreglarla. Este secreto le impedía compartir sus pensamientos e ideas con otros programadores. La mayoría de los programadores consideran el esquema de cobrar por las versiones binarias bloqueadas de un programa como un mal necesario. Claro, no podían jugar con las entrañas de Microsoft Windows, pero también significaba que nadie podía jugar con las entrañas de sus propios programas. Este esquema cerró puertas y compartimentó el mundo, pero también le da mayor poder al creador de programas. La mayoría de los programadores pensaban que tener poder sobre su propia creación era muy bueno, incluso si otros tenían más poder aún. Estar desarmado está bien si todos los demás están desarmados y encerrados en una jaula. Stallman consideró que esto sería un desastre para el mundo y se dispuso a convencer a todos de que tenía razón. En 1984, escribió el Manifiesto GNU, que inició su proyecto GNU y estableció las condiciones para su revolución. Este documento se destacó un poco en medio de la era de Ronald Reagan puesto que expone el plan de Stallman para crear una comuna virtual donde las personas serían libres de usar el software. Es uno de los primeros casos en que alguien intentó establecer una definición de la palabra "libre" para los usuarios de software. Claro, el software y las ideas eran bastante libres hacía mucho tiempo, pero nadie se había dado cuenta hasta que desapareció la libertad. El escribió, Considero que la regla de oro exige que si me gusta un programa debo compartirlo con otras personas a las que les guste. Los vendedores de software quieren dividir a los usuarios y conquistarlos, haciendo que cada usuario acepte no compartir con los demás. Me niego a romper la solidaridad con otros usuarios de esta manera... Para poder seguir usando las computadoras sin deshonra, he decidido reunir un cuerpo suficiente de software libre para poder vivir sin ningún software. eso no es gratis. El documento hecha un vistazo maravilloso al naciente mundo del software libre porque es tanto un documento de reclutamiento como una diatriba dirigida a las prácticas comerciales corporativas. Cuando las colonias americanas se separaron de Inglaterra, Thomas Paine explicó los problemas de los ingleses en el primer párrafo de su panfleto "Sentido común". En su manifiesto, Stallman no comenzó a usar palabras como "deshonra" hasta el sexto párrafo. Los primeros párrafos detallan las geniales herramientas que ya había desarrollado: "un editor de texto Emacs con Lisp para escribir comandos de edición, un depurador de nivel fuente, un generador de analizador compatible con yacc, un enlazador y alrededor de 35 utilidades". Luego señaló el trabajo que quería completar pronto: "Se ha compilado un nuevo compilador de C optimizador portable, y puede publicarse este año. Existe un núcleo inicial, pero se necesitan muchas más funciones para emular Unix". Decía, en efecto, que ya tenía unos jugosos melocotones creciendo en los árboles de su comuna. Si esto no fuera suficiente, tenía la intención de hacer las cosas un poco mejor que UNIX. Su sistema operativo iba a ofrecer las últimas y mejores ideas de la informática de los alrededores de 1984. "En particular, planeamos tener nombres de archivo más largos, números de versión de archivo, un sistema de archivos a prueba de fallas, finalización de nombre de archivo tal vez, soporte de visualización independiente de terminal , y quizás eventualmente un sistema de ventanas basado en Lisp a través del cual varios programas Lisp y programas ordinarios de Unix puedan compartir una pantalla". Lo único que faltaba en la lista de deseos de todos los nerds de las computadoras era un lugar secreto para atracar submarinos en la gruta del sótano. El quinto párrafo incluso explicaba a todos que el nombre del proyecto sería el acrónimo GNU, que significaba "GNU's Not UNIX", y debería pronunciarse con una G fuerte para asegurarse de que nadie lo confundiera con la palabra "new". Stallman siempre se ha preocupado por las palabras, la forma en que se usan y la forma en que se pronuncian. En 1984, UNIX se convirtió en el foco de la animosidad de Stallman porque su desarrollador original, AT&T, se encontraba ejerciendo presión para tratar de recuperar algo de dinero después de pagarle a tanta gente en Bell Labs para crearlo. La mayoría de los informáticos se encontraban un poco conflictuados por la pelea. Entendían que AT&T había pagado un buen dinero y apoyado a muchos investigadores con la beneficencia de la empresa. La empresa dio dinero, tiempo y computadoras de repuesto. Claro, fue un fastidio pagar a AT&T por algo y obtener solo una licencia larga redactada por equipos de abogados. Sí, sería bueno si pudiéramos hurgar bajo el capó de UNIX sin firmar un acuerdo de confidencialidad. Sería bueno si pudiéramos ser libres de hacer lo que queramos, pero ciertamente alguien que paga por algo merece el derecho de decidir cómo se usa. Todos tenemos que comer. Stallman no estaba confundido en absoluto. Las “Licencias” como la de AT&T restringirían su libertad para compartir con otros. Para empeorar las cosas, las empresas de software querían que él pagara por el privilegio de obtener software con el código fuente. Stallman explica que sus sentimientos no estaban enfocados en AT&T per se. Estaban surgiendo empresas de software por todas partes, y la mayoría de ellas bloqueaban su código fuente con licencias propietarias. Era lo típico de los 80, como escuchar música de Duran Duran y Boy George. "Cuando decidí escribir un sistema operativo gratuito, no tenía en mente a AT&T, porque nunca había tenido ningún trato con ellos. Nunca había usado un sistema UNIX. Eran solo una de las muchas compañías que hacían la misma cosa", me dijo recientemente. "Elegí un diseño similar a Unix simplemente porque pensé que era un buen diseño para trabajar, no porque tuviera sentimientos particulares sobre AT&T". Cuando escribió el Manifiesto GNU, le dejó claro al mundo que su proyecto se trataba más de elegir el camino moral correcto que de ahorrar dinero. Escribió entonces que el proyecto GNU significa "mucho más que simplemente ahorrarles a todos el precio de una licencia de UNIX. Significa que se evitará una duplicación inútil del esfuerzo de programación del sistema. Este esfuerzo puede - en lugar de ello – enfocarse hacia el avance del estado del arte". Este fue un punto crucial que evitó que Stallman fuera descartado como un chiflado casi comunista que solo quería que todos vivieran felices en una comuna de nerds. El código fuente es una herramienta valiosa para todos porque es legible por humanos, o al menos por humanos que son buenos programando. Las empresas aprendieron a mantener el código fuente en propiedad, y se convirtió casi en un reflejo. Si la gente quisiera usarlo, debería pagar para ayudar a sufragar el costo de crearlo. Esto tenía sentido para los programadores que querían ganarse la vida o incluso enriquecerse escribiendo su propio código. Pero a veces era terriblemente frustrante. Muchos programadores se han tirado de los pelos cuando su trabajo se ha visto detenido por algún error o característica no documentada enterrada profundamente en el software patentado y supersecreto creado por Microsoft, IBM, Apple o quien sea. Si tuvieran el código fuente, podrían hurgar y descubrir qué estaba sucediendo realmente. En lugar de ello, tenían que tratar el software como una caja negra y seguir probándolo con programas de análisis que podrían revelar los secretos ocultos en su interior. Todos los programadores han tenido una experiencia como esta, y todos los programadores sabían que podían resolver el problema mucho más rápido si solo podían leer el código fuente. No querían robar nada, solo querían saber qué estaba pasando para poder hacer que su propio código funcionara. El proyecto GNU de Stallman sería diferente, y explicó: "Las fuentes completas del sistema estarán disponibles para todos. Como resultado, un usuario que necesite cambios en el sistema siempre tendrá la libertad de hacerlos él mismo o contratar a cualquier programador o empresa disponible para hacerlo para él. Los usuarios ya no estarán a merced de un programador o empresa que posee las fuentes y está en posición exclusiva para realizar cambios ". Se apresuró a mencionar que la gente sería "libre de contratar a cualquier programador disponible" para asegurarse de que la gente entendiera que no estaba en contra de aceptar dinero por escribir software. Eso estaba bien y era algo que él mismo hacía con frecuencia. Estaba en contra de que las personas controlaran la fuente con barreras legales arbitrariamente complejas que hacían imposible que él o cualquier otra persona hiciera algo. Cuando la gente escuchó por primera vez sus ideas, se obsesionaron con la palabra "libre". Estos fueron los años de Reagan. Decir que la gente debería simplemente dar su arduo trabajo sonaba muy comunista para todos, y esto fue mucho antes de que cayera el Muro de Berlín. Stallman volvió a examinar la palabra "libre" y todos sus diferentes significados. Consideró cuidadosamente todas las diferentes connotaciones, examinó las alternativas y decidió que "libre" seguía siendo la mejor palabra. Empezó a tratar de explicar los matices de significado que buscaba. Su revolución se trataba de la "libertad de expresión", no de la "cerveza gratis". Esto no iba a ser una revolución en el sentido de que las millas de viajero frecuente revolucionaron los viajes aéreos ni en la forma en que las latas de aluminio revolucionaron el consumo de cerveza. No, esto iba a ser una revolución en el sentido en el cual Rousseau, Locke y Paine usaron la palabra. Más tarde codificó esto en cuatro principios nodales: La libertad de ejecutar el programa, para cualquier propósito (libertad 0).[^6] [6]: Los numeró empezando por cero porque eso era lo que hacían los informáticos. Alguien descubrió que era más sencillo comenzar a numerar las bases de datos desde cero porque no tenía que restar 1 con tanta frecuencia. La libertad de estudiar cómo funciona el programa y adaptarlo a tus necesidades (libertad 1). La libertad de redistribuir copias para que puedas ayudar a tu prójimo (libertad 2). La libertad de mejorar el programa y entregar sus mejoras al público, para que toda la comunidad se beneficie (libertad 3). 10.1 Cerveza gratis Si bien Stallman alejó a la gente de la noción de "canilla libre", no hay duda de que este elemento resultó ser una parte muy importante de la estrategia y la base de su éxito. Stallman insistió en que cualquiera podía hacer lo que quisiera con el software, por lo que insistió en que el código fuente debía distribuirse libremente. Es decir, nadie podría poner restricciones sobre cómo usar el software. Si bien esto no hacía que la cerveza fuera gratis, sí significó que podía dar la vuelta y dar una copia a sus amigos o clientes. Estuvo bastante cerca. La naturaleza de "cerveza gratis" del software de Stallman también atrajo a los usuarios. Si algunos programadores quisieran probar una nueva herramienta, podrían descargarla y probarla sin pagar por ella. No necesitaban pedirle un presupuesto a su jefe, y no necesitaban encontrar una manera de lidiar con una factura. Solo un clic y el software se descargaba. Las empresas de software comercial continúan imitando esta función mediante la distribución de versiones de prueba que vienen con algunas funciones inhabilitadas, o un bloqueo de tiempo que las desactiva trascurridos unos días. Por supuesto, la naturaleza de "cerveza gratis" del proyecto GNU pronto condujo a problemas de dinero. El proyecto GNU tomó su tiempo y al principio no generó ingresos reales. Stallman siempre había vivido frugalmente. Dice que nunca ganó más de $ 20,000 al año en el MIT y aún así logró ahorrar en ese salario. Pero cada vez le resultaba más difícil realizar los trabajos asignados en el MIT y escribir el genial código GNU. Si bien Stallman siempre apoyó el derecho de un programador a ganar dinero por escribir código, el proyecto GNU no estaba generando dinero. La mayoría de la gente vio que este conflicto venía desde el principio. Claro, Stallman sería capaz de despotricar y delirar sobre el desarrollo de software corporativo todo lo que quisiera, pero eventualmente él y sus discípulos necesitarían comer. Cuando finalizó el apoyo del MIT, Stallman pronto se topó con un hecho sorprendente: podía cobrar por el software que estaba regalando y ganar algo de dinero. A la gente le encantaba su software, pero a menudo era difícil hacer un seguimiento de él. Obtener el paquete entregado en cinta de computadora o en CD-ROM les permitía a las personas una copia dura que podrían almacenar para futuras referencias o copias de seguridad. Los manuales en línea también estaban bien, pero el libro impreso sigue siendo una forma muy popular y fácil de usar de almacenar información. La Free Software Foundation de Stallman comenzó a vender manuales impresos, cintas y luego CD-ROM llenos de software para ganar dinero. Sorprendentemente, la gente comenzó a pagar dinero por estas versiones a pesar de que podían descargar las mismas de forma gratuita. Algunas personas disfrutaron señalando la hipocresía en el movimiento de Stallman. Stallman había hablado tanto tiempo que muchos programadores "vendidos" que trabajaban para corporaciones saborearon la ironía. Por fin ese weenie había captado la imagen. Se vio obligado a ganar dinero para mantenerse, y también se estaba vendiendo. Estos cínicos no entendieron lo que Stallman estaba tratando de hacer. La mayoría de nosotros nos habríamos dado por vencidos en este momento. Lo del software libre parecía una buena idea, pero ahora que el dinero se estaba acabando era el momento de conseguir un trabajo de verdad. Al escribir este libro y entrevistar a algunos de los desarrolladores de software libre famosos y no tan famosos, descubrí que ahora algunos estaban involucrados en el desarrollo de software no tan libre con fines de lucro. Stallman, sin embargo, no iba a renunciar a sus ideales, y su mente comenzó a cambiar para adaptarse a esta nueva medida de la realidad. Decidió que no estaría mal vender copias de software o incluso servicios de software siempre y cuando no retuvieras el código fuente y pisotearas la libertad de cualquier persona para usar el código fuente como quisiera. Stallman siempre ha sido excelente para dividir las aguas y crear distinciones jesuíticas, y esta idea fue una de las mejores. A primera vista, parecía un poco chiflado. Si las personas fueran libres de hacer lo que quisieran con el software, podrían simplemente darle una copia a su amigo y su amigo nunca devolvería dinero a la Fundación de Software Libre de Stallman. De hecho, alguien podría comprar una copia de Stallman y luego comenzar a revender copias a otros para socavar a Stallman. La Free Software Foundation y la GNU GPL les daban la libertad de hacerlo. Era como si un cine vendiera boletos para una película, pero también colocara un gran cartel cerca de la puerta de salida que decía "Oye, está absolutamente bien que dejes esto abierto para que tus amigos puedan colarse sin pagar". Si bien esta libertad total confundió a la mayoría de las personas, no fracasó. Muchos pagaban por cintas o versiones en CD-ROM porque querían la comodidad. Las versiones de Stallman venían con las últimas correcciones de errores y nuevas características. Eran las versiones casi oficiales. Otros sintían que pagar ayudaba a mantener el trabajo, por lo que no se sintieron mal por hacerlo. Les gustó la FSF y querían que produjera más código. A otros simplemente les gustaban más los libros impresos que la documentación electrónica. Comprarlos de Stallman era más barato que imprimirlos. Otros pagaban por los CD-ROM porque solo querían apoyar a la Free Software Foundation. Stallman también encontró otro apoyo. La Fundación MacArthur le dio una de sus subvenciones que le pagaron un buen salario durante cinco años para hacer lo que quisiera. Empresas como Intel lo contrataron como consultor y le pidieron que se asegurara de que parte de su software se ejecutara en chips Intel. La gente estaba bastante dispuesta a pagar por la comodidad porque incluso el software libre no hacía todo lo que debería. Stallman también reconoció que esta libertad introdujo una medida de competencia. Si él podía cobrar por las copias, entonces también podrían hacerlo los demás. El código fuente sería un gran bien común, pero los medios para entregarlo estarían llenos de personas que luchan por hacer el mejor trabajo de distribución del software. Era una noción de Reaganaut bastante dura para un comunista reputado. Al principio, pocos se molestaron en competir con él, pero con el tiempo todo el código GNU comenzó a incluirse en los sistemas operativos de las computadoras. Cuando Linus Torvalds empezó a escribir su sistema operativo, el código GNU estaba listo para ser incluido. 10.2 Copyleft Si la primera gran idea de Stallman fue que el mundo no necesitaba tolerar el código fuente propietario, la segunda fue que podía controlar estrictamente el uso del software GNU con un documento legal innovador titulado GNU General Public License, o GPL. Para ilustrar la diferencia, llamó al acuerdo "copyleft" y se dispuso a crear un documento legal que definiera lo que significaba que el software fuera "libre". Bueno, definiendo lo que pensaba que debería significar. La GPL es un documento legal cuidadosamente elaborado que no colocaba el software en el "dominio público", una designación que habría permitido a las personas hacer realmente lo que quisieran con el software. La licencia, de hecho, registra los derechos de autor del software y luego extiende a los usuarios derechos muy liberales para hacer innumerables copias siempre que los usuarios no dañaran los derechos de otras personas para usar el software. La definición de socavar los derechos de otras personas es la que mantiene en funcionamiento a los departamentos de ciencias políticas de las universidades. Existen muchos electores que enmarcan sus argumentos en términos de proteger los derechos de alguien. Stallman consideró la protección de los derechos de otros usuarios en términos muy fuertes y fortaleció un poco su control al insertar una cláusula controvertida. Insistió en que quien distribuya una versión mejorada del programa también debe compartir el código fuente. Eso significa que alguna empresa codiciosa no puede descargar su editor GNU Emacs, agregarle algunas características nuevas y luego vender el paquete completo sin incluir todo el código fuente que crearon. Si el Pueblo iba a beneficiarse del uso compartido de GNU, tendrían que volver a compartir. Era la libertad con un precio. Este documento fuerte estaba listo para algunos momentos irónicos. Cuando Apple comenzó a tratar de ampliar el alcance de las leyes de propiedad intelectual al demandar a empresas como Microsoft por robar su "apariencia", Stallman se indignó y decidió que no desarrollaría software para las máquinas de Apple como una forma de protesta y despecho. Si Apple iba a contaminar el panorama legal con terribles impedimentos para compartir ideas, entonces Stallman no iba a ayudarlos a vender máquinas escribiendo software para sus computadoras. Pero la licencia copyleft de GNU permitía específicamente que cualquier persona distribuyera libremente el código fuente y lo usara como quisiera. Eso significa que otros pueden usar el código GNU y portarlo para que se ejecutara en Apple si así lo deseaban. Muchos portaron gran parte del software GNU a Mac y distribuyeron el código fuente con él para cumplir con la licencia. Stallman no pudo hacer nada al respecto. Claro, él era el gran líder de la FSF y el autor de parte de su código, pero había cedido su poder con la licencia. Lo único que podía hacer era negarse a ayudar a la gente a portar el software a la Mac. Cuando se trataba de principios, colocó la libertad de usar el código fuente en la parte superior de la jerarquía. 10.3 El virus GNU Algunos programadores pronto comenzaron a referirse a la naturaleza pegajosa de la licencia como el "virus GNU" porque infectaba los proyectos de software con su bug de libertad. Si un desarrollador quería ahorrar tiempo y obtener algo del software GNU, estaba remediado a hacer que el resto de su trabajo fuera igual de libre. Estas esposas doradas a menudo asustaban a los programadores que querían ganar dinero cobrando por su trabajo. Stallman odia esa caracterización. "Llamar a algo 'como un virus' es algo muy vicioso. Las personas que dicen cosas como esa están tratando de encontrar formas de hacer que la GPL se vea mal", dice. Stallman intentó solucionar este problema creando lo que al principio llamó "Licencia pública general de biblioteca" y ahora se refiere como "Licencia pública general menor", un documento que permitía a los desarrolladores de software compartir pequeños fragmentos de código entre sí, en circunstancias menos restrictivas. Un programador puede usar LGPL para vincular fragmentos de código conocidos como bibliotecas. Otros pueden compartir las bibliotecas y usarlas con su código fuente siempre que no las integren por completo. Cualquier cambio que realicen en la biblioteca en sí debe hacerse público, pero no hay ningún requisito para publicar el código fuente del programa principal que usa la biblioteca. Esta licencia es esencialmente una concesión a algunas asperezas en los bordes, donde el mundo de la programación se une al mundo de la ley. Si bien Stallman estaba empeñado en crear una colección perfecta de programas gratuitos que resolvieran las necesidades de todos, estaba lejos de haber terminado. Si la gente iba a usar su software, tendría que usarlo en máquinas fabricadas por Sun, AT&T, IBM o cualquier otra persona que vendiera un sistema operativo propietario junto con él. Entendió que necesitaba llegar a un compromiso, al menos para las bibliotecas del sistema. El problema es trazar límites entre lo que es una pila de software propiedad de una persona y lo que es otra pila propiedad de otra persona. La GPL garantizó que el software GNU "infectaría" otros paquetes y obligaría a las personas que usaron su código a unirse a la fiesta y liberar el suyo también. Así que tuvo que idear una definición que explicara lo que significaba para las personas usar su código e "incorporarlo" a otros. Esto es a menudo más fácil decirlo que hacerlo. El mercado ha desarrollado formas de vender software en grandes cantidades a las personas, pero estas son ficciones que camuflan la integración del software. En la práctica moderna, los programadores no solo crean una porción de software fácilmente distinguible conocida como Microsoft Word o Adobe Photoshop. Construyen una variedad de fragmentos más pequeños conocidos como bibliotecas y los vinculan entre sí. Microsoft Windows, de hecho, incluye una gran colección de bibliotecas para crear menús, formularios, áreas de clic y todo lo demás que hacen las interfaces gráficas de usuario. Los programadores no necesitan escribir sus propias instrucciones para dibujarlas en la pantalla e interactuar con ellas. Esto ahorra mucho tiempo y práctica a los programadores, y es una gran parte de lo que Microsoft vende cuando le vende a alguien una caja con Windows. Stallman reconoció que los programadores a veces escriben bibliotecas que querían que otros usaran. Después de todo, ese era el objetivo de GNU: crear herramientas que otros pudieran usar libremente. Así que Stallman cedió y creó la Licencia Pública Menor, que permitiría a las personas crear bibliotecas que podrían incorporarse a otros programas que no fueran completamente GNU. La biblioteca en sí aún venía con el código fuente y el usuario tendría que distribuir todos los cambios realizados en la biblioteca, pero no había limitación en el paquete más grande. Esta nueva licencia también fue una especie de concesión a la realidad. En el sentido más abstracto, los programas son simplemente cajas negras que toman alguna entrada y producen alguna salida. No existe límite para las jerarquías que se pueden crear conectando estas casillas para que la salida de una sea la entrada de otra. Eventualmente, el bosque de conexiones se vuelve tan denso que es difícil trazar una línea y etiquetar una colección de cajas "ProprietarySoft's SUX-2000" y otra colección "GNUSoft's Wombat 3.14.15". Las conexiones son tan numerosas en un software efectivo y bien escrito que el mapeado de líneas es difícil. El problema es similar al que enfrentan los biólogos cuando intentan definir ecosistemas y especies. Algunos dicen que existen dos grupos diferentes de atunes que nadan en el Atlántico. Otros dicen que sólo hay uno. Si no afectara las leyes internacionales sobre pesca, la distinción se dejaría a los académicos. Algunos grupos que impulsan la visión de una escuela están preocupados de que otros al otro lado del océano estén capturando sus peces. Otros impulsan la teoría de las dos escuelas para minimizar la intromisión de la burocracia del otro lado. Sin embargo, nadie sabe cómo trazar una buena línea. La LGPL de Stallman fue una concesión al hecho de que a veces los programas se pueden usar como bibliotecas y otras veces las bibliotecas se pueden usar como programas. Al final, el programador puede trazar una línea clara alrededor de un conjunto de cajas y decir que la GPL cubre estas funciones sin filtrarse para infectar el software que se vincula con las cajas negras. 10.4 ¿Está la Free Software Foundation en contra de la libertad? Aún así, estas concesiones no son suficientes para algunas personas. Muchos continúan protestando contra la definición de libertad de Stallman y caracterizan la GPL como un documento fascista que roba los derechos de cualquier programador que venga después. Ser libre significa tener derecho a hacer lo que quieras con el código, incluso mantener todas tus modificaciones privadas. Para ser justos, la GPL no obliga a revelar sus cambios en el código fuente. Simplemente lo obliga a liberar sus modificaciones si las redistribuye. Si solo ejecuta su propia versión en su hogar, entonces no necesita compartir nada. Sin embargo, cuando comienza a compartir versiones binarias del software, también debe proveer el código fuente. Algunos argumentan que las corporaciones tienen el potencial de solucionar este vacío legal porque actúan como una sola persona. Una empresa podría revisar el software y "difundirlo" simplemente contratando a cualquiera que quisiera comprarlo. Los nuevos empleados o miembros de la corporación tendrían acceso al software sin publicar el código fuente; de esta manera, el código fuente nunca se distribuiría porque no se envió públicamente. Nadie cree seriamente que alguien intente explotar esta disposición con una interpretación tan extrema, pero abre la interrogante de si alguna vez se puede crear una licencia hermética. Estas sutiles distinciones no satisficieron a muchos programadores que no estaban tan entusiasmados con la versión doctrinaria de la libertad de Stallman. Querían crear software libre y tener la libertad de ganar algo de dinero con él. Esta tradición se remonta a muchos años antes de Stallman y es una parte firme de la vida académica. Muchos profesores y estudiantes desarrollaron software y publicaron una versión gratuita antes de iniciar una empresa que comercializaría el trabajo. Usaron su salario de profesor o el estipendio de estudiante para apoyar el trabajo, y el software libre que contribuyeron al mundo fue pensado como un intercambio. En muchos casos, el gobierno de EE. UU. pagó la creación del software a través de una subvención y la publicación gratuita fue un regalo para los contribuyentes que finalmente lo financiaron. En otros casos, las corporaciones pagaron por partes de la investigación y la publicación gratuita se consideró como una forma de devolver algo a la corporación patrocinadora sin convertir la universidad en un hogar de programadores tercerizados mal pagados de la corporación que eran estudiantes solo de nombre. En muchos casos, la distribución gratuita fue un regalo honesto de investigadores que querían dar a su trabajo la mayor difusión posible. Se sentían recompensados con fama y prestigio académico, lo que puede ser más lucrativo que cualquier cosa menos una buena oferta pública inicial. Compartir conocimientos y crear más de ellos era de lo que se trataban las universidades. Stallman aprovechó esa tradición. Pero muchos otros eran bastante cínicos. Trabajarían el tiempo suficiente para generar una versión que funcionara lo suficientemente bien como para convencer a la gente de su valor. Luego - cuando apareciera la financiación - lanzarían esta versión con bugs al "dominio público", cruzarían la calle hacia su propia nueva empresa y reanudarían el desarrollo. La versión de dominio público cumplía con las reglas de la universidad y apaciguaba a las agencias de subvenciones, pero a menudo era casi inutilizable. Los errores eran demasiado numerosos y estaban demasiado escondidos bajo la costra informática como para que valiera la pena el tiempo de alguien. Por supuesto, los autores originales sabían dónde acechaban los problemas y los solucionarían antes de lanzar la versión comercial. El líder de esta rama académica del mundo del software libre se convirtió en el Grupo de Investigación de Sistemas Informáticos de la Universidad de California en Berkeley. Las versiones publicadas de Berkeley Software Distribution (BSD) de UNIX comenzaron a surgir en Berkeley a fines de la década de 1970. Su trabajo surgió con una licencia libre que otorgaba a todos el derecho de hacer lo que quisieran con el software, incluida la creación de una empresa, agregar algunas funciones interesantes y comenzar a revender el paquete completo. El único problema era que el usuario debía mantener intacto el mensaje de derechos de autor y dar crédito a la universidad en el manual y en los anuncios. Este requisito se relajó en 1999 cuando la lista de personas que necesitaban crédito en proyectos de software creció demasiado. Muchos grupos tomaban la licencia BSD y simplemente reemplazaban las palabras "Universidad de California" con su nombre. La lista de personas que necesitaban ser reconocidas públicamente crecía con cada nuevo proyecto. A medida que las distribuciones crecieron para incluir todos estos nuevos proyectos, el proceso de enumerar todos los nombres y proyectos se volvió oneroso. La Universidad de California eliminó la cláusula que requería crédito publicitario con la esperanza de dar un ejemplo que otros pudieran seguir. Hoy en día, muchos proyectos de software libre comienzan con un debate de "GNU versus BSD" cuando los fundadores iniciales discuten si es una buena idea restringir lo que los usuarios pueden hacer con el código. El lado de GNU siempre cree que los programadores deberían verse obligados a donar el código que desarrollan al mundo, mientras que el lado de BSD presiona por una libertad prácticamente ilimitada. Rick Rashid es una de las principales fuerzas detrás del desarrollo de Windows NT de Microsoft y también un importante contribuyente a nuestro conocimiento sobre cómo construir un sistema operativo de computadora. Antes de ir a Microsoft, fue profesor en Carnegie-Mellon. Mientras estuvo allí, encabezó el equipo responsable del desarrollo de Mach, un sistema operativo que ofrecía funciones multitarea relativamente fáciles de usar basadas en un kernel muy pequeño. Mach permitió a los programadores dividir su software en múltiples "hilos" que podrían ejecutarse de forma independiente mientras compartían el mismo acceso a los datos. Cuando se le preguntó recientemente sobre Mach y la licencia de Mach, explicó que deliberadamente escribió la licencia para que fuera lo más libre posible. En su opinión, la GPL de GNU no era apropiada para la tecnología que se desarrollaba en gran medida con subvenciones del gobierno. El trabajo debe ser lo más libre posible y no debe obligar a "otras personas a hacer cosas (por ejemplo, regalar su trabajo personal) para tener acceso a lo que ha hecho". Dijo, en una entrevista por correo electrónico: "Mi intención era alentar el uso del sistema tanto para uso académico como comercial y se usó mucho en ambos entornos. Accent, el predecesor de Mach, ya había sido comercializado y utilizado por una variedad de compañías Mach continúa siendo muy utilizado hoy en día, tanto como base para el nuevo MacOS de Apple como para variantes de Unix en el mercado (por ejemplo, Unix de 64 bits de Compaq para Alpha)". 10.5 La evolución de BSD La licencia BSD evolucionó a lo largo de un extraño camino legal que se parecía más al deambular de una vaca borracha que a la devoción láser de Stallman. Muchos profesores y estudiantes experimentaron con UNIX en DEC VAX que se comunicaban con viejos teletipos y terminales tontas. AT&T le dio a Berkeley el código fuente de UNIX, y esto permitió a los estudiantes y profesores agregar sus instrucciones y funciones al software. Gran parte de su conocimiento sobre el diseño del sistema operativo y muchas de sus correcciones de errores regresaron a AT&T, donde fueron incorporadas a las siguientes versiones de UNIX. Nadie pensó dos veces en que el código fuente fuese publicado, puesto que el mercado de software empaquetado estaba aún en pañales. El mercado de las computadoras personales ni siquiera nació hasta la segunda mitad de la década de 1970, y la gente tardó algún tiempo en creer que el código fuente era algo que una empresa debía retener y proteger. De hecho, muchos de los programas aún no estaban escritos en lenguajes de alto nivel. Los programadores escribían instrucciones directamente para la computadora, y aunque a menudo incluían algunas instrucciones para humanos, había poca diferencia entre lo que escribían los humanos y lo que leía la máquina. Una vez que Bill Joy y otros en Berkeley comenzaron a crear varias piezas de software destacables, otras universidades comenzaron a solicitar copias. En ese momento - recuerda Joy - se consideraba un poco desagradable que los investigadores de informática escribieran software y lo compartieran con otros. Los departamentos académicos estaban llenos de muchos profesores que recibieron su formación formal en matemáticas, y consideraban que las pruebas y análisis formales rigurosos eran la forma ideal de investigación. Joy y varios otros estudiantes comenzaron a rebelarse argumentando que la creación de sistemas operativos funcionales era una investigación experimental esencial. Los departamentos de física apoyaron a los experimentalistas y teóricos. Entonces Joy comenzó a "publicar" su código remitiendo copias a otros investigadores que lo requerían. Aunque muchos profesores y estudiantes de Berkeley agregaron fragmentos al software que corría en los DEC VAX, fue Joy quien lo juntó todo y le dio el nombre. Kirk McKusick dice en su historia de Berkeley UNIX, "... el interés en el trabajo de recuperación de errores en el compilador Pascal generó solicitudes de copias del sistema. A principios de 1977, Joy armó la 'Berkeley Software Distribution'. Esta primera distribución incluía el sistema Pascal y, en un oscuro subdirectorio de la fuente Pascal, el editor vi. Durante el año siguiente, Joy, actuando en calidad de secretario de distribución, remitió unas 30 copias gratuitas del sistema". Hoy, Joy cuenta la historia con un poco de distracción desconcertada. Explica que simplemente copió una licencia de la Universidad de Toronto y "borró" "Universidad de Toronto" y la reemplazó con "Universidad de California". Simplemente quería sacar el código fuente por la puerta. Al principio, Berkeley Software Distribution incluía algunas utilidades, pero en 1979 el código se integró estrechamente con el código UNIX básico de AT&T. Berkeley regaló la colección de software en BSD, pero solo los titulares de licencias de AT&T podían usarla. Muchas universidades se sintieron atraídas por el paquete, en parte porque el sistema Pascal era fácil de usar para sus estudiantes. El mundo de las computadoras personales, sin embargo, se estaba enfocando en un lenguaje más simple conocido como Basic. Bill Gates haría de Microsoft Basic uno de sus primeros productos. Joy dice que escribió una carta a AT&T preguntando sobre el estado legal del código fuente de AT&T que se implementó junto con el código BSD. Después de un año, dice, "me respondieron diciendo: 'No tomamos posición' al respecto". Kirk McKusick, quien luego dirigió el proyecto BSD durante los años de la demanda de AT&T, explicó secamente: "Más tarde escribieron una carta diferente". Joy fue solo uno de una gran cantidad de personas que trabajaron intensamente en el proyecto BSD desde 1977 hasta principios de la década de 1980. Para los estándares actuales, el trabajo era de bajo nivel y sucio. Los estudiantes y profesores se apresuraban a portar UNIX a las nuevas máquinas que se adquirían. A menudo, resultaba necesario modificar o actualizar gran parte de las entrañas del sistema operativo para adaptarlas a un nuevo tipo de unidad de disco o sistema de archivos. A medida que hacían esto con más y más frecuencia, comenzaron a desarrollar más y mayores abstracciones de alto nivel para facilitar la tarea. Uno de los primeros ejemplos fue el editor de pantalla de Joy conocido como vi, un paquete simple que podía usarse para editar archivos de texto y reprogramar el sistema. La "batalla" entre el vi de Joy y el Emacs de Stallman es otro ejemplo del cisma entre el MIT y Berkeley. Esta fue solo una de las nuevas herramientas incluidas en la versión 2 de BSD, una colección que se difundió a 75 personas e instituciones diferentes. A fines de la década de 1970, Bell Labs y Berkeley comenzaron a separarse cuando AT&T inició la comercialización de UNIX y Berkeley mantuvo su trabajo de educación. El profesor de Berkeley, Bob Fabry, fue capaz de interesar a la Agencia de Proyectos de Investigación Avanzada de Defensa (DARPA) del Pentágono para que se inscribiera para apoyar un mayor desarrollo en Berkeley. Fabry vendió a la agencia un paquete de software que se podría utilizar en muchas de las nuevas máquinas que se instalarían en los laboratorios de investigación de todo el país. Sería más fácil de transportar para que la investigación no tuviera que detenerse cada vez que llegaba una nueva computadora. El trabajo en este proyecto se convirtió en las versiones 3 y 4 de BSD. Por entonces, la relación entre AT&T y las universidades era cordial. AT&T poseía el mercado comercial de UNIX y Berkeley suministraba muchas de las versiones utilizadas en las universidades. Si bien las universidades obtuvieron BSD de forma gratuita, aún necesitaban negociar una licencia con AT&T, y las empresas pagaron una fortuna. Esto no fue un gran problema porque las universidades a menudo son terriblemente miopes. Si comparten su trabajo con otras universidades y profesores, por lo general lo dan por hecho. Puede haber personas por ahí sin citas universitarias, pero esas personas generalmente son vistas como chiflados que pueden ser ignorados con seguridad. De vez en cuando, esos chiflados escriben su propio sistema operativo que se convierte en Linux. La versión BSD de la libertad todavía estaba muy lejos de la de Stallman, pero Stallman aún no la había articulado. Su manifiesto todavía estaba a unos años de distancia. La tensión intelectual entre Stallman y Berkeley creció durante la década de 1980. Mientras Stallman comenzó lo que muchos pensaron que era un viaje quijotesco para construir un sistema operativo completamente gratuito, los estudiantes y profesores de Berkeley continuaron agregando sus mejoras a UNIX sobre el código de AT&T. El código de AT&T era bueno, estaba disponible y muchas de las personas en Berkeley habían ayudado directa o indirectamente a influir en él. En general, estaban felices de mantener el código de AT&T en el centro a pesar de que todos los usuarios de BSD necesitaban negociar con AT&T. Este proceso se volvió cada vez más costoso a medida que AT&T intentaba ganar más y más dinero con UNIX. Por supuesto, a Stallman no le gustó la libertad de la licencia estilo BSD. Para él, significaba que las empresas podían salir corriendo con el trabajo duro y el código fuente compartido de otra, ganar un montón de dinero y no devolver nada. Las empresas y las personas que estaban recibiendo el lanzamiento de la red BSD estaban recibiendo el arduo trabajo acumulativo de muchos estudiantes y profesores de Berkeley (y otros lugares) que donaron su tiempo y esfuerzo para construir un sistema operativo decente. Lo mínimo que estas empresas les debían a los estudiantes eran las correcciones de errores, las extensiones y las mejoras que creaban cuando jugaban con el código fuente y lo pegaban en sus productos. Stallman tenía razón. Muchas de estas empresas "compartieron" vendiendo el software a estos estudiantes y a los contribuyentes que habían pagado por su trabajo. Si bien es imposible volver atrás y auditar los motivos de todos los que usaron el código, hubo muchos que usaron el código BSDstyle para su beneficio personal. Bill Joy, por ejemplo, empezó a trabajar en Sun Microsystems en 1982 y llevó consigo todo el conocimiento que había adquirido en el desarrollo de BSD. Sun siempre fue una tienda muy centrada en BSD, y muchas de las personas que compraron estaciones de trabajo Sun corrían BSD. En ese momento, AT&T todavía controlaba gran parte del núcleo y muchos de los pequeños programas adicionales que hacían de UNIX un sistema utilizable. Pero también hay contraargumentos. Joy ciertamente contribuyó mucho a las diferentes versiones de BSD. Si alguien merece irse y hacerse rico en una empresa como Sun, era él. Además, el código fuente de BSD estaba disponible gratuitamente para todos los interesados y todas las empresas comenzaron con las mismas ventajas. El negocio del software a menudo se considera uno de los mercados más libres debido a las bajas barreras de entrada. Esto significa que las empresas solo deberían poder cobrar por el valor que agregan al código BSD. Claro, todo Internet estuvo influenciado por el código TCP/IP, pero ahora Microsoft, Apple, IBM, Be y todos los demás compiten por la calidad de su interfaz. 10.6 El precio de la libertad total El debate entre la libertad al estilo BSD y la libertad al estilo GNU es uno de los más grandes en el mundo de la programación libre y seguramente continuará durante mucho tiempo a medida que los programadores se unan y experimenten. John Gilmore es un programador que ha trabajado con software desarrollado bajo ambos tipos de licencias. Fue el empleado número cinco de Sun Microsystems, cofundador de la empresa de herramientas de desarrollo de software Cygnus Solutions y uno de los miembros de la junta directiva de Electronic Frontier Foundation. Su trabajo inicial en Sun le dio la riqueza para llevar a cabo muchos proyectos independientes, y ha pasado los últimos 10 años dedicándose a facilitar a las personas de todo el mundo el uso del software de encriptación. Siente que la privacidad es un derecho fundamental y un elemento disuasorio importante del crimen, y ha financiado una serie de proyectos diferentes para promover este derecho. Gilmore también maneja la lista de correo de cypherpunks en una computadora en su casa llamada Toad Hall cerca de Haight Street en San Francisco. La lista de correo está dedicada a explorar cómo crear herramientas de encriptación sólidas que protejan la privacidad de las personas y es bien conocida por el fuerte tono libertario de las deliberaciones. Prácticamente toda la lista cree (y reitera con frecuencia) que las personas necesitan el derecho a proteger su privacidad contra las escuchas privadas y del gobierno. La revista Wired presentó a Gilmore en la portada, junto con sus compañeros de viaje Eric Hughes y Tim May. Una de sus tareas recientes fue crear un paquete utilitario de encriptación gratuitas que funcionaban en el nivel más bajo del sistema operativo de la red. Estas herramientas, conocidas como Free/SWAN, permitirían que dos computadoras que se encuentran en Internet comiencen a codificar automáticamente los datos que intercambian con algunos de los mejores y más seguros cifradores disponibles. Se imagina que los bancos, los laboratorios científicos y los trabajadores a domicilio de todo el mundo querrán utilizar el conjunto de herramientas. De hecho, AT&T actualmente está examinando cómo incorporar el conjunto de herramientas en los productos que está construyendo para vender más servicios de alta velocidad a los trabajadores que se quedan en casa para evitar el viaje. Gilmore decidió utilizar la licencia GNU para proteger el software libre/SWAN, en parte porque en el pasado había tenido malas experiencias con el software totalmente libre. Una vez escribió un pequeño programa llamado PDTar que era una mejora con respecto a la versión estándar de Tar utilizada en Internet para agrupar un grupo de archivos en una gran bolsa de bits fácil de administrar, a menudo conocida cariñosamente como "tarballs". Decidió que no iba a jugar con la licencia GNU de Stallman ni a imponer ninguna restricción al código fuente. Simplemente iba a liberarlo al dominio público y dar a todos libertad total. Esta buena acción no quedó impune, aunque el castigo fue relativamente menor. Él recuerda: "Nunca hice que PDTar funcionara para DOS, pero seis u ocho personas lo hicieron. Durante años después del lanzamiento, recibí correos que decían: 'Tengo este binario para el lanzamiento de DOS y no funciona". A menudo ni siquiera tenían las fuentes que acompañaban a la versión, así que no podía ayudarlos incluso si lo intentaba". Resultó que la libertad total trajo una cierta cantidad de anarquía que le dificultó administrar el proyecto. Si bien la libertad total puede haber alentado a otros a crear sus versiones propias de PDTar, no los obligaba a publicar el código fuente que acompañaba a sus versiones para que otros pudieran aprender o corregir sus errores. Hugh Daniel, uno de los evaluadores de la Proyecto Free/SWAN, dice que cree que la Licencia Pública General GNU ayudará a mantener cierta coherencia en el proyecto. "También hay algo mágico con el código GPL que el código abierto no tiene", dijo Daniel. "Por alguna razón, los proyectos no se bifurcan en el espacio GPL. Las personas no toman una copia del código y lo llaman propio. Por alguna razón, hay un sentido de comunidad en el código GPL. Parece haber una versión. Hay un núcleo GPL y hay ramas BSD vacías". Daniel tiene básicamente razón. El código BSD ha evolucionado, o se ha bifurcado, en muchas versiones diferentes con nombres como FreeBSD, OpenBSD y NetBSD, mientras que el kernel Linux UNIX lanzado bajo la GPL de Stallman está limitado a un paquete bastante coherente. Aún así, hay mucha polinización cruzada entre las diferentes versiones de BSD UNIX. Tanto NetBSD 1.0 como FreeBSD 2.0, por ejemplo, tomaron prestado el código de 4.4 BSD-Lite. Además, muchas versiones de Linux vienen con herramientas y utilidades que provienen del proyecto BSD. Pero el punto de Daniel también está nublado con la semántica. Existen docenas, si no cientos, de distribuciones de Linux diferentes disponibles de distintos proveedores. Muchas difieren en puntos sutiles, pero algunas son marcadamente diferentes. Si bien estas diferencias suelen ser tan grandes como las que existen entre los distintos tipos de BSD, los grupos no las consideran psicológicamente separadas. No se han bifurcado políticamente a pesar de que han separado su código. Si bien versiones diferentes pueden ser buenas para algunos proyectos, puede ser un problema para paquetes como Free/SWAN que dependen de la interoperabilidad. Si surgen versiones competidoras de Free/SWAN, entonces todo comienza a sufrir porque el producto fue diseñado para permitir que las personas se comuniquen entre sí. Si el software no puede negociar códigos seguros debido a las diferencias, entonces comienza a fallar. Pero no está claro que la libertad adicional sea responsable de la fragmentación. En realidad, los diferentes grupos BSD surgieron porque tenían necesidades diferentes. El grupo NetBSD, por ejemplo, quería enfatizar el soporte multiplataforma y la interoperabilidad. Su sitio web se jacta de que el lanzamiento de NetBSD funciona bien en 21 plataformas de hardware diferentes y también señala que algunas de estas plataformas de hardware son bastante diversas. Hay 93 versiones diferentes de Macintosh que se ejecutan en los chips 68k de Motorola, incluida la primera Mac. Ochenta y nueve de ellos ejecutan alguna parte de NetBSD y 37 de ellos ejecutan todo. Por eso dicen que su lema es "Por supuesto que ejecuta NetBSD". El grupo OpenBSD, por otro lado, enfatiza la seguridad sin comprometer la portabilidad y la interoperabilidad. Quieren corregir todos los errores de seguridad de inmediato y ser el sistema operativo más seguro del mercado. También existen profundas diferencias personales en la forma en que Theo de Raadt - el fundador de OpenBSD - inició el proyecto después de que el grupo NetBSD lo expulsara de su grupo principal. Por todas estas razones, puede ser difícil argumentar que las libertades provistas por la licencia estilo BSD fueron en gran parte responsables de la fragmentación. Los usuarios del software GNU tienen la misma libertad para hacer nuevas versiones siempre y cuando devuelvan el código fuente a la libre circulación. De hecho, es posible argumentar que las versiones para Macintosh de parte del código GNU comprenden un grupo disidente porque ocurrió a pesar de la mala voluntad que Stallman sentía por la Mac. 10.7 La síntesis del "código abierto" La tensión entre las licencias BSD y GNU siempre se ha enconado como el debate sobre el aborto. Todos eligieron bandos y rara vez se apartaron de ellos. En 1998, un grupo de personas de la comunidad del software libre intentó unificar los dos campos creando un nuevo término, "código abierto". Para asegurarse de que todos supieran que hablaban en serio, comenzaron una organización no incorporada, registraron una marca comercial y crearon un sitio web (www.opensource.org). Cualquiera que quisiera etiquetar su proyecto como "código abierto" tendría que responderles porque controlarían la marca registrada en el nombre. Sam Ockman, un entusiasta de Linux y fundador de Penguin Computing, recuerda el día de la reunión justo antes de que Netscape anunciara que liberaría su código fuente. "Eric Raymond llegó a la ciudad por lo de Netscape. Netscape iba a liberar su software, así que fuimos a Transmeta y tuvimos una reunión para poder asesorar a Netscape", dijo. Explicó que el grupo consideró varias opciones diferentes sobre la estructura. Algunos querían elegir un líder ahora. Otros querían emular un proyecto de código abierto y dejar que emergiera un líder a través de la exhibición de talento y, bueno, liderazgo. Otros querían elecciones. La definición de código abierto surgió del proyecto Debian, uno de los diferentes grupos que se unieron para editar CD-ROM de versiones estables de Linux. A menudo se involucran grupos como estos en debates sobre qué software incluir en los discos. Algunos querían ser muy puros y solo incluir software con licencia GPL. En cierta medida, eso obligaría a otros a contribuir con el proyecto porque no conseguirían que el grupo distribuyera su software a menos que tuviera la licencia GPL. Otros querían requisitos menos estrictos que podrían incluir proyectos casi comerciales que aún venían con su código fuente. Hubo algunos proyectos geniales que no estaban protegidos por GPL, y podría ser terriblemente difícil dejar pasar la oportunidad de integrarlos en un paquete. Con el tiempo, uno de los líderes del grupo Debian, Bruce Perens, llegó a crear una definición de lo que era aceptable y lo que no. Esta definición sería lo suficientemente amplia como para incluir la licencia pública general de GNU, las licencias de estilo BSD y algunas otras, como la licencia del Consorcio X del MIT y la licencia Artística. La licencia de X-windows cubre una interfaz gráfica de ventanas que comenzó en el MIT y también se distribuyó gratuitamente con la libertad de BSD. La licencia Artística se aplica al lenguaje de programación Perl, una herramienta que se utiliza con frecuencia para transformar archivos. La metadefinición de Debian abarcaría todos estos. La definición oficial de lo que era aceptable para Debian se inclinaba hacia más libertad y menos restricciones en el uso del software. Por supuesto, esa es la única forma en que alguien podría llegar a una definición que incluyera tanto a GNU como al mucho menos restrictivo BSD. Pero esta también fue la intención del grupo de código abierto. Perens y Eric Raymond sintieron que Stallman todavía sonaba demasiado cuasi-comunista para "hombres de negocios conservadores", y querían la definición de código abierto para evitar insistir en el tipo de intercambio forzado que proporcionaba el virus GNU de Stallman. Aun así, la definición se basó en gran medida en el concepto de GNU de Stallman, y Perens le da crédito al decir que muchas de las pautas de Debian se derivan de la GPL. Una licencia oficial de código abierto para un producto debe proporcionar al programador un código fuente que sea legible por humanos. No puede restringir qué modificaciones se hacen al software o cómo se vende o regala. La definición pasó por alto la diferencia entre BSD y GNU al afirmar: "La licencia debe permitir modificaciones y trabajos derivados, y debe permitir que se distribuyan bajo los mismos términos que la licencia del software original". La definición demostró ser el modelo para más ofertas comerciales como la Licencia Pública de Netscape. En 1998, Netscape comenzó a distribuir el código fuente a su popular navegador con la esperanza de obtener ayuda de Internet y detener la erosión gradual de Microsoft de su territorio. La licencia brindaba a los usuarios amplias oportunidades para realizar cambios y jugar con el software, pero también permitía a Netscape usar los cambios internamente y negarse a compartir lo que hacían con ellos. Este privilegio especial ofendió a algunos usuarios a quienes no les gustó el desequilibrio, pero no molestó a muchos otros que pensaron que era un compromiso razonable para tener la oportunidad de jugar con el código comercial. Netscape, por supuesto, devolvió parte del favor al permitir que las personas mantuvieran sus modificaciones en privado de la misma manera que lo hacía la licencia de estilo BSD. En junio de 1999, la Open Source Initiative reveló un hecho sorprendente. Estuvieron cerca de fracasar en sus intentos de registrar el término "código abierto" como marca comercial. La frase era demasiado común para ser registrada. En cambio, retrocedieron y se ofrecieron a revisar las licencias y clasificarlas oficialmente como "Certificadas por OSI" si cumplían con los términos de la definición de libertad de OSI. Algunos reaccionaron negativamente. Richard Stallman decidió que no le gustaba tanto la palabra "abierto" como "libre". Abierto no captura la esencia de la libertad. Ockman afirmó: "No creo que sea muy justo. Durante siglos, siempre ha dicho que el término 'software libre' es problemático porque la gente piensa en 'cerveza gratis' cuando debería pensar en 'libertad de expresión'. Estábamos tratando de resolver ese término. Si las masas están confundidas, entonces las corporaciones estadounidenses están aún más confundidas". El debate incluso ha producido más términos. Algunas personas ahora usan la frase "fuente libre" para aplicarla al conglomerado general de GPL y el mundo de fuente abierta. El uso de "software libre" implica que alguien está alineado con la Free Software Foundation de Stallman. El uso de "código abierto" implica que está alineado con la Iniciativa de Código Abierto más amigable para el mundo de los negocios. Entonces, "código libre" y "código abierto" funcionan como un compromiso. Otros modifican el significado de libre y se refieren al software protegido por GPL como "GNUFree". Naturalmente, todo este debate sobre la libertad puede alcanzar proporciones cómicas. Los programadores son casi mejores que los abogados para encontrar lagunas, aunque solo sea porque tienen que vivir con un programa que falla.[^7] Stallman, por ejemplo, aplica la GPL a todo lo que sale del proyecto GNU, excepto a la licencia misma. Eso no se puede cambiar, aunque se puede reproducir libremente. Algunos argumentan que si fuera modificable, las personas podrían insertar y eliminar términos a voluntad. Luego podrían aplicar la GPL modificada a la nueva versión del software y hacer lo que quisieran. La intención original de Stallman no cambiaría. La GPL aún se aplicaría a todo el software GNU y sus descendientes, pero no sería la misma GPL. [7]: Los abogados solo ven a sus clientes ir a la cárcel.