¿Qué es el software de código abierto? Explicación del código abierto y FOSS

Detrás de cada pieza de software que usa hay un código fuente que emite los comandos y maneja los datos que permiten que el software haga lo que hace. La cuestión de quién debería tener derecho a mirar, alterar o redistribuir ese código fuente ha sido durante mucho tiempo una de las divisiones ideológicas fundamentales dentro del mundo de la informática.

Los defensores del software de código abierto, como su nombre lo indica, se inclinan por la apertura; sienten que las personas deberían tener derecho a acceder al código fuente del software que utilizan. Sin embargo, como veremos, en la práctica hay mucha variedad que cae bajo esa etiqueta. Existen varios tipos de software de código abierto en casi todos los nichos que pueda imaginar; de hecho, el código abierto domina muchos de ellos.

¿Qué es el software de código abierto, qué es el software libre? ¿Son diferentes?

Una definición sucinta de software de código abierto es que es un software cuyo código subyacente se puede examinar, alterar y redistribuir. (Hay una definición más larga y más oficial a la que llegaremos en un momento). Las partes "alteradas y redistribuidas" son realmente clave para la filosofía de código abierto. A pesar de lo que el nombre pueda implicar, simplemente abrir su código fuente para que la gente pueda verlo no lo convierte en código abierto.

En cierto modo, el término “software de código abierto” es un retrónimo: en las primeras décadas de la informática, el código fuente del software estaba disponible de forma natural y se intercambiaba libremente entre investigadores y científicos de la industria. Las computadoras eran pocas y distantes entre sí y se esperaba que sus usuarios las modificaran en gran medida, por lo que la gente necesitaba acceder al código. En muchos sentidos, el software se consideraba un complemento del hardware informático; no fue hasta 1974 que se estableció legalmente que el software estaba sujeto a derechos de autor. Pero cuando amaneció la era de las microcomputadoras a fines de la década de 1970, la industria comenzó a cambiar a la posición de que el software era algo que tenía un valor monetario en sí mismo, y que el acceso al código subyacente podía y debía restringirse para proteger a los creadores de software. ' derechos.La famosa carta abierta de 1976 de Bill Gates a los aficionados que se quejan de la piratería generalizada del primer producto de Microsoft, el intérprete de Altair BASIC, es un documento decisivo de este cambio.

Si bien estas nuevas ideas fueron rápidamente adoptadas por la industria del software en rápido crecimiento, algunas personas las rechazaron. Uno de los primeros oponentes fue Richard Stallman, quien fundó la Free Software Foundation (FSF) en 1985. El "libre" en el software libre está destinado a denotar la libertad de los usuarios para alterar y distribuir el código como lo deseen; no hay ninguna regla que prohíba cobrar dinero por software libre en este sentido. A menudo se hace la distinción entre “gratis como en cerveza gratis” y “libre como en libertad de expresión”, estando el software libre en el último campo.

Aún así, la idea del software libre puso nerviosa a mucha gente de la industria privada, que, después de todo, no era fanática de regalar cosas. En 1998, Christine Peterson acuñó la frase "código abierto" en parte como un intento de hacer que la idea fuera más accesible para los recién llegados, particularmente aquellos que trabajan en empresas con fines de lucro. Aunque Stallman se ha resistido al término fuente abierta, diciendo que se aleja de las ideas políticas y filosóficas originales del software libre, se ha convertido en la frase dominante que describe este concepto. El diagrama de Venn de software libre y de código abierto se superpone lo suficiente como para que a veces los dos se combinen bajo el acrónimo FOSS (software libre y de código abierto) . En general, todo el software libre es de código abierto, aunque una pequeña parte del software de código abierto tiene términos de licencia, lo que significa que no es gratuito (más sobre licencias de código abierto en un momento).

El concepto de software libre y de código abierto dio lugar a otra definición de retrónimo: "software propietario ", cualquier software que no sea de código abierto.

Licencias de software de código abierto

Todos los derechos y responsabilidades involucrados en el software de código abierto están establecidos por las licencias bajo las cuales se distribuye el software. A medida que se estableció la doctrina legal de que el software estaba sujeto a derechos de autor, las licencias de software comenzaron a escribirse para proporcionar un contrato entre el propietario de los derechos de autor y el usuario, dando al usuario permiso para ejecutar el software en una computadora personal.

Las licencias de software existían originalmente para restringir el comportamiento del usuario y proteger los derechos del fabricante del software. Pero los defensores del software libre se dieron cuenta de que podían invertir el propósito original de las licencias: la licencia de un paquete de software podría requerir que el código subyacente esté disponible para cualquiera que use el software, y que los usuarios tengan derecho a editar y redistribuir ese código. La primera licencia de software de código abierto (aunque es anterior al término) es probablemente el aviso de permiso de copia de GNU Emacs, lanzado en 1985 para la versión del editor de texto de Emacs escrito por Stallman de FSF.

Desde entonces ha proliferado el número de licencias gratuitas y de código abierto, cada una de las cuales establece términos ligeramente diferentes para el uso del código con licencia; Wikipedia mantiene un gráfico bastante bueno con detalles sobre las licencias más importantes. Por definición, cualquiera de estas licencias de código abierto otorga a los usuarios las tres libertades fundamentales de poder leer, editar y redistribuir el código fuente; el área principal en la que se diferencian es en los términos que imponen a la redistribución:

  • Las licencias permisivas le permiten redistribuir cualquier código fuente como mejor le parezca. Por ejemplo, podría tomar el código fuente publicado bajo una licencia permisiva, incorporarlo a su propio software y luego publicar ese software bajo una licencia propietaria. La licencia BSD es una de las licencias permisivas más famosas.
  • Las licencias copyleft requieren que cualquier código redistribuido que incorpore el código con licencia también se publique bajo una licencia similar. Las diversas versiones de la Licencia Pública GNU (GPL) de la FSF son licencias copyleft y su objetivo es exigir a los desarrolladores que paguen compartiendo los beneficios que recibieron al incorporar código fuente abierto en su proyecto.

Es interesante notar que las ideas detrás de estas licencias se han extendido más allá del mundo del software. Creative Commons es una infraestructura legal para aplicar términos similares a obras artísticas escritas o visuales.

La definición de código abierto y la iniciativa de código abierto

El código abierto, por su propia naturaleza, no está controlado por una sola entidad u organización. En 1998, un grupo de desarrolladores prominentes, incluidos Bruce Perens y Eric S. Raymond, fundaron Open Source Initiative (OSI), una organización sin fines de lucro dedicada a la defensa del código abierto dentro de la industria del software en general. La OSI intentó sin éxito registrar el término fuente abierta en 1999; sin embargo, su definición formal de código abierto es, por consenso, el marco que siguen todas las licencias que se denominan a sí mismas código abierto. Además de la libertad de examinar, modificar y redistribuir el código que ya hemos comentado, la definición de código abierto prohíbe las licencias que discriminan a grupos o personas específicas, que impiden que el código se utilice para un propósito o campo de actividad específico, o de ejecutarse en un dispositivo o tipo de dispositivo específico.

Desarrollo de código abierto y proyectos de código abierto

El desarrollo que utiliza código fuente abierto tiene lugar en todo tipo de entornos, desde universidades hasta grandes corporaciones, y a menudo sigue los mismos patrones que cualquier otro tipo de desarrollo de software. Pero hay un tipo específico de proceso de desarrollo comunitario abierto que está asociado con el código abierto. En su influyente ensayo "La catedral y el bazar", Eric S. Raymond describió su visión para este proceso, donde cualquiera puede acceder al código, y se agregan actualizaciones a la base de código de un grupo ampliamente distribuido de desarrolladores que entran y salen como su interés lo dicta.

El desarrollo de código abierto de este tipo se organiza en torno a proyectos de código abierto . A veces funcionan en una sola pieza de software y, a veces, en un conjunto completo de aplicaciones relacionadas. El software de control de versiones mantiene las contribuciones de todos en línea. GitHub es probablemente el más popular.

A veces, los proyectos de código abierto iniciados por una sola persona suelen ser pequeñas comunidades de Internet autoorganizadas y, aunque cualquiera puede contribuir a cualquier proyecto, la mayoría de ellos suelen ser realizados por un grupo relativamente pequeño de desarrolladores. A veces, un proyecto puede ser patrocinado por una empresa con fines de lucro que planea utilizar el software que produce, llegando incluso a poner a los desarrolladores más destacados del proyecto en la nómina.

Ejemplos de código abierto

El software de código abierto es de hecho omnipresente y crea gran parte de la base de la Internet moderna. Quizás el proyecto de código abierto más famoso es Linux, la variante Unix de código abierto que alimenta a millones de servidores. Otros proyectos importantes y extremadamente importantes incluyen el servidor web Apache, la base de datos MySQL y WordPress. Numerosos marcos de desarrollo se lanzan como código abierto, desde Ruby on Rails hasta .Net Core de Microsoft.

El código abierto ha tenido menos éxito en la producción de programas informáticos domésticos destinados a usuarios normales. A pesar del alto costo de los paquetes de software patentados como Microsoft Word y Adobe Photoshop, las contrapartes de código abierto como OpenOffice y GIMP nunca lograron encontrar un nicho más allá de los entusiastas acérrimos, en gran parte porque la comunidad de código abierto tradicionalmente ha priorizado las características y la flexibilidad sobre la facilidad de uso. utilizar. (El bloqueo del formato de archivo de los proveedores propietarios no ha ayudado). Incluso Linux, cuyos defensores han estado afirmando desde finales de la década de 1990 que el sistema operativo de código abierto está a solo un año de dominar el escritorio, nunca ha logrado realmente saltar al espacio de consumo. En general, el código abierto se utiliza para infraestructura mucho más que para software de usuario final.Pero el movimiento del software monolítico que se ejecuta localmente a las aplicaciones SaaS ha sido una bendición para el código abierto, ya que las infraestructuras basadas en la nube se basan en gran medida en pilas dominadas por el código abierto.

¿Recuerda lo que dijimos sobre las empresas con fines de lucro que apoyan el código abierto? A menudo, esos proyectos se producen bajo una licencia permisiva, por lo que esas empresas pueden poner el código fuente abierto en el centro de sus ofertas patentadas mientras mantienen una base de código fuente abierta separada en paralelo como un proyecto comunitario. Por ejemplo, el sistema operativo móvil Android tiene Linux en su núcleo; todos los sistemas operativos móviles y de escritorio de Apple se basan en Darwin, un sistema operativo de código abierto derivado originalmente de BSD Unix. Incluso Chrome de Google se basa en un navegador de código abierto llamado Chromium.

La comunidad de código abierto y el movimiento de código abierto

El código abierto es más que un simple proceso de desarrollo; es una filosofía que apasiona a la gente, y es una comunidad social a la que cualquier persona con habilidades en programación puede unirse. De hecho, es toda una serie de comunidades, como dice la Fundación Linux. (La existencia de organizaciones sin fines de lucro como la Fundación Linux y OSI es un aspecto importante de esa comunidad). Florian Effenberger tiene un gran ensayo sobre cómo la comunidad de código abierto enriqueció su vida.

A menudo escuchará a la gente hablar sobre el código abierto o el movimiento del software libre, que tiene una connotación de política y defensa. Mucha gente en la comunidad de código abierto ha impulsado la adopción generalizada de software de código abierto por una variedad de razones: piensan que el código abierto produce un código intrínsecamente mejor, o creen que el acceso al código fuente es un derecho fundamental que los usuarios de computadoras deberían disfrutar. o alguna combinación de los dos. Este aspecto de la comunidad parece un poco menos visible hoy en día, pero tal vez sea porque, en muchos sentidos, el código abierto ha ganado. En 2001, el entonces CEO de Microsoft, Steve Ballmer, dijo que, debido a su licencia de código abierto, Linux era "un cáncer que se adhiere en un sentido de propiedad intelectual a todo lo que toca". Hoy, Microsoft es un gran usuario y productor de software de código abierto.Estas son las últimas dos décadas de la historia del código abierto en pocas palabras.

Descarga de software de código abierto

¿Quieres empezar a navegar y jugar con proyectos de código abierto? Consulte la página Proyectos y aplicaciones de opensource.com, la pestaña Explorar de GitHub o el Mapa de software de la Red de desarrollo de código abierto. Hay mucho para gente curiosa de cualquier nivel.