¿Qué es el software de código abierto?
Hombre trabajando en una computadora desktop
¿Qué es el software de código abierto?

El software de código abierto es software desarrollado y mantenido mediante una colaboración abierta, y está disponible (generalmente sin costo alguno) para que cualquiera lo use, examine, altere y redistribuya como quiera. Esto contrasta con las aplicaciones de software patentadas o de código cerrado, (por ejemplo, Microsoft Word, Adobe Illustrator) que el creador o el titular de los derechos de autor venden a los usuarios finales, y no se pueden editar, mejorar ni redistribuir excepto según lo especifique el titular de los derechos de autor.

El término código abierto también se refiere de manera más general a un enfoque basado en la comunidad para crear cualquier propiedad intelectual (como el software) a través de colaboración abierta, inclusión, transparencia y actualizaciones públicas frecuentes.

Una breve historia del software de código abierto

Hasta mediados de la década de 1970, el código de computadora se consideraba implícito en el funcionamiento del hardware de la computadora y no como una propiedad intelectual única sujeta a la protección de los derechos de autor. Las organizaciones programaban su propio software y el código compartido era una práctica común.

La Comisión sobre Nuevos Usos Tecnológicos de Obras con Derechos de Autor (CONTU) se estableció en 1974 y concluyó que el código de software era una categoría de trabajo creativo adecuado para la protección de derechos de autor. Esto impulsó el crecimiento de la publicación independiente de software como industria, con el código fuente patentado como fuente principal de ingresos. A medida que la computación personal trajo aplicaciones a todos los escritorios corporativos y muchos hogares, el mercado de software se volvió más competitivo y los editores de software tuvieron que estar atentos a las infracciones de derechos de autor.

En 1983 comenzó una especie de rebelión contra las restricciones y limitaciones del software propietario. El programador Richard Stallman se irritó ante la idea de que los usuarios no podían personalizar el software propietario de la forma que consideraran adecuada para realizar su trabajo. Stallman sintió que "el software debería ser gratuito, como en el habla, no en la cerveza", y defendió la noción de software que estaba disponible gratuitamente para su personalización.

Stallman fundó la Free Software Foundation y seguiría impulsando el desarrollo de una alternativa de código abierto al sistema operativo Unix propiedad de AT&T, entre otras aplicaciones. También innovó la primera licencia de software con copyleft, la Licencia Pública General GNU (GPL), que requería que cualquier persona que mejorara su código fuente también publicara su versión editada libremente para todos.

El ensayo de Eric S. Raymond de 1997 titulado "The Cathedral and the Bazaar" se considera otro punto de inflexión en el movimiento del software libre. Raymond contrastó el enfoque cerrado y de arriba hacia abajo típico del desarrollo de software propietario donde todo el desarrollo estaba a cargo de un grupo central (al que llamó The Cathedral), versus el desarrollo público abierto y libremente compartido a través de Internet (The Bazaar). Poco después, Netscape Corporation lanzó su código de navegador Mozilla como código abierto y el movimiento de código abierto ganó legitimidad.

Debido a que muchos sintieron que el término "software libre" de Stallman enfatizaba inapropiadamente "sin costo" como el principal valor del software, el término "código abierto" fue adoptado en 1999. La iniciativa de código abierto se creó para defenderlo. La organización también ha establecido reglas básicas para la industria a través de la definición de código abierto y aloja licencias de código abierto compatibles. Hoy en día, los términos software libre, software de código abierto (o OSS), software libre y de código abierto (FOSS) y software de código libre/libre-abierto (FLOSS) se refieren todos a lo mismo: software con código fuente disponible para uso público y personalización.

Código abierto en informática empresarial y personal

El software de código abierto ahora juega un papel vital en la informática, con tecnologías de código abierto que proporcionan la base de Internet, de la informática empresarial y de la informática personal. Prácticamente todos los dispositivos informáticos ahora contienen código fuente abierto de muchos tipos, generalmente adoptado por los desarrolladores para realizar operaciones fundamentales y, a menudo, funciones más avanzadas.

Algunas de las aplicaciones de software de código abierto más frecuentes incluyen: 

  • El sistema operativo Linux, una alternativa de código abierto al sistema operativo Unix
     

  • Mozilla Firefox, un navegador web originalmente basado en Netscape Navigator
     

  • LibreOffice, un conjunto de aplicaciones de productividad de oficina que rivaliza con Microsoft Office
     

  • GIMP (Programa de manipulación de imágenes GNU), una alternativa de código abierto a Adobe Photoshop
     

  • VLC Media Player, una aplicación multiplataforma para ver videos

Los programas de código abierto también se utilizan ampliamente en redes, empresas y computación en la nube. Las categorías de software de código abierto citadas por los profesionales de TI como las más comunes dentro de las implementaciones de sus organizaciones incluyen:

  • Lenguajes y marcos de programación
     

  • Bases de datos y tecnologías de datos
     

  • Sistemas operativos
     

  • Repositorios públicos basados en Git
     

  • Infraestructuras para inteligencia artificial/machine learning/deep learning

Por qué los usuarios y las empresas eligen el código abierto

Las razones para elegir software de código abierto pueden variar significativamente de una persona a otra y de una organización a otra. En muchos casos, los usuarios finales desconocen por completo los programas de código abierto en sus computadoras o dispositivos móviles. También es común que los usuarios finales descarguen una aplicación gratuita como el navegador Mozilla Firefox o una aplicación de Android. Estos usuarios simplemente quieren la funcionalidad del software, sin intención de reescribir o incluso mirar el código fuente.

Una empresa, por otro lado, podría elegir el software de código abierto en lugar de una alternativa patentada por su bajo (o nulo) costo, la flexibilidad para personalizar el código fuente o la existencia de una gran comunidad que respalda la aplicación. Los programadores profesionales o aficionados pueden ofrecer voluntariamente sus habilidades de desarrollo y prueba a un proyecto de código abierto, a menudo para mejorar su reputación y conectarse con otros en el campo. Ahora es común que las empresas proporcionen empleados remunerados a proyectos de código abierto para respaldar la vitalidad del desarrollo de software de código abierto y ayudar a garantizar productos de alta calidad.

Si bien los productos de código abierto pueden ahorrar a las empresas el costo de las licencias, pueden incurrir en otros costos, por lo general para la integración de la red, el usuario final y el soporte de TI, y otros servicios que generalmente se incluyen con el software propietario. Aún así, muchas empresas consideran que el software empresarial de código abierto es al menos tan confiable y seguro como el software propietario, y se sienten más cómodos con las soluciones de código abierto porque pueden inspeccionar el código del programa y comprender exactamente lo que están agregando a su infraestructura informática.

Cómo se hace el software de código abierto

El modelo de desarrollo de código abierto abarca toda la gama. Una gran cantidad de programas de código abierto han sido originados por programadores independientes o pequeños equipos de programadores. Por ejemplo, Guido van Rossum dijo que comenzó a trabajar en el popular lenguaje de programación Python porque tenía tiempo libre durante la semana navideña de 1989. De manera similar, el servidor web Apache comenzó con un pequeño grupo de programadores que trabajaban juntos para mejorar el software del servidor escrito originalmente por Robert McCool como estudiante universitario en un programa de supercomputación.

A medida que estos y otros proyectos de código abierto han madurado, han involucrado a muchos miles de programadores que contribuyeron con innumerables líneas de código, además de probar el software, escribir documentación, crear el sitio web del proyecto y más.

En el otro extremo del espectro, los ingenieros de Google iniciaron la plataforma de orquestación de contenedores de Kubernetes, como una implementación de tecnología de código abierto originalmente creada internamente para equilibrar las cargas de trabajo del servidor de Google. Google llevó el proyecto a la comunidad de código abierto mediante la creación de un nuevo consorcio dentro de la Fundación Linux llamado Cloud Native Computing Foundation (CNCF). Desde entonces, miles de desarrolladores han trabajado en el kernel en evolución, incluidos representantes de las principales empresas informáticas.

Con el tiempo, un ecosistema tiene que soportar proyectos de software de código abierto. Los servicios de hosting de código, como GitHub, Bitbucket, SourceForge y Google Code, proporcionan repositorios centrales, control de versiones y otras funciones que permiten que diversos grupos de trabajo distribuidos colaboren y gestionen proyectos de código abierto. Solo GitHub ha registrado 83 millones de desarrolladores y más de 20 millones de repositorios de proyectos abiertos (cada repositorio representa una rama única de un proyecto de código abierto).

Han surgido varias organizaciones sin fines de lucro para apoyar y financiar el mantenimiento continuo de proyectos de código abierto, como la Fundación de software libre y la Iniciativa de código abierto (OSI). Y hay muchas docenas de bases para aplicaciones específicas, como la Fundación Linux, que ofrecen soporte a programas específicos de código abierto y proyectos relacionados que apoyan esas tecnologías.

Software de código abierto y propiedad intelectual

"Código abierto" y "propietario" representan enfoques alternativos a la titularidad de la propiedad intelectual (IP) incorporada en una aplicación. Con el código abierto, la propiedad intelectual está destinada a beneficiar al público sin ánimo de lucro asociado a la propiedad intelectual. Por el contrario, el software propietario monetiza el valor de la propiedad intelectual (mediante el cobro de una tarifa de suscripción o licencia propietaria).

La idea detrás del software de código abierto, sin embargo, no es principalmente un mensaje contra las ganancias o el capitalismo, sino que, en manos de su comunidad de usuarios, el software alcanzará naturalmente su mayor potencial al brindar más valor a un número cada vez mayor de usuarios. El proyecto de código abierto más grande de la historia, Internet, se utilizó originalmente para compartir documentos académicos, todo más allá de ese caso de uso limitado es el resultado de innumerables mentes que imaginan e implementan nuevas posibilidades.

Si bien el software de código abierto se pone a disposición del público de forma gratuita, no es de dominio público,  una categoría legal de propiedad intelectual desprovista de cualquier derecho de propiedad.

A través de un giro ingenioso de los derechos de autor tradicionales, los creadores de software de código abierto originaron lo que llamaron "copyleft", que permite el uso público ilimitado, la alteración y la redistribución del código fuente, pero evita que otros conviertan obras basadas en el código en software patentado con derechos de autor (más sobre esto a continuación). Sin embargo, hoy en día existen más de 100 tipos diferentes de licencias de software de código abierto, algunas de las cuales permiten que los trabajos derivados creados en código fuente abierto tengan derechos de autor y se vendan. Esto amplía las oportunidades comerciales para quienes crean software de código abierto.

Licencias de software de código abierto

Una vez más, la GPL de Stallman estipulaba que cualquiera podía reescribir su software como mejor le pareciera, siempre que el código resultante se publicara de forma gratuita para que todos lo usaran. De esta manera, la licencia copyleft de GPL creó un nuevo tipo de propiedad intelectual de dominio casi público, pero con restricciones legalmente exigibles impuestas por el titular original de los derechos de autor para proteger contra reclamos posteriores de propiedad restrictiva por parte de otros.

Desde entonces, se han desarrollado numerosas licencias de software de código abierto. La Iniciativa de código abierto enumera más de 100 licencias de código abierto aprobadas. Algunas de estas permiten crear productos propietarios a partir de código fuente abierto.

Las licencias de código abierto a veces se clasifican como "permisivas", es decir, que permiten a los usuarios registrar los derechos de autor de sus propias obras, o "protectoras", como copyleft. Las licencias de código abierto MIT y BSD son las licencias permisivas más utilizadas, mientras que GPL sigue siendo una de las licencias copyleft protectoras más utilizadas. Numerosas licencias alternativas son "compatibles con" GPL o MIT, lo que significa que el código de software escrito bajo esta licencia se puede usar en otra aplicación que use la licencia GPL o MIT.

Modelos de negocio de código abierto

Si bien parece que la creación de software de código abierto es una empresa noble, incluso caritativa, hay trabajo involucrado en su creación, mantenimiento y evolución, y hacer este trabajo es una cuestión de dinero. Afortunadamente, hay varias formas en que los proyectos de código abierto, y las empresas construidas a su alrededor, pueden prosperar.

Una ruta es por medio de contribuciones caritativas a fundaciones. Las corporaciones tienen interés en respaldar el software de código abierto, ya que proporciona una funcionalidad tan importante con ahorros de costos tan significativos y, a menudo, contribuirá con fondos e incluso dedicará empleados asalariados a trabajar en proyectos de código abierto. Pero esto proporciona principalmente el mantenimiento a largo plazo de la tecnología y no genera ganancias para el proyecto de código abierto.

Un modelo comercial más común es cobrar a los clientes por el soporte y la experiencia. En 1993, Red Hat comenzó a vender su redistribución empresarial del sistema operativo Linux, cobrando a los clientes por soporte y características adicionales destinadas específicamente a resolver problemas que una empresa podría encontrar al implementar un sistema operativo no curado y actualizado continuamente. En 2012, Red Hat se convirtió en la primera empresa de software de código abierto en superar los mil millones de dólares en ingresos. En 2019, IBM Corporation adquirió Red Hat por 34,000 millones de dólares, la adquisición de software más grande de la historia.

WordPress, originalmente una plataforma de blogs, ahora se usa ampliamente para crear, gestionar y alojar sitios web. WordPress funciona como una plataforma basada en la nube o de software como servicio (SaaS) y cobra a los clientes tarifas de suscripción escalonadas por hosting web, soporte y funcionalidad adicional del sitio (por ejemplo, capacidad de comercio electrónico, herramientas de SEO).

Otros creadores de software abierto no cobran nada por su software, pero obtienen ingresos significativos debido al tráfico que genera su software. Por ejemplo, GitHub obtiene ingresos en función de la publicidad que aparece en su sitio. Mozilla Firefox obtiene ingresos de los motores de búsqueda que admite.

Soluciones relacionadas
Red Hat Software on IBM Cloud

Las soluciones IBM y Red Hat pueden aumentar la productividad, reducir los costos y mejorar los resultados de negocios.

Explore las soluciones de IBM y Red Hat
IBM LinuxONE

Descubra el servidor de software de código abierto seguro que ofrece seguridad y escalabilidad óptimas para aplicaciones críticas.

Explore LinuxONE
Linux on IBM Z

Obtenga privacidad de datos y seguridad cibernética en la multinube híbrida con el sistema operativo Linux en el mainframe de IBM Z.

Explore Linux on IBM Z
Enterprise Linux on IBM Power

Con Enterprise Linux® on IBM® Power, puede amplificar los muchos beneficios de la tecnología de código abierto (confiabilidad, seguridad y escalabilidad) con opciones de implementación nativas de la nube líderes en la industria.

Explore Linux on Power
Recursos Código abierto en IBM

Desde blockchain hasta contenedores, IA y sistemas operativos, nuestros desarrolladores están creando proyectos emergentes de código abierto y rodeándolos de código, documentos y materiales de soporte.

¿Es seguro su software de código abierto?

Mejorar su cadena de suministro de software puede minimizar significativamente su riesgo de verse comprometido.

Dé el siguiente paso

En IBM, hemos hecho nuestra misión ayudar a los clientes a maximizar la velocidad en su ruta para transformar digitalmente sus negocios, con una base ágil basada en la tecnología de código abierto de Red Hat que le permite crear una vez e implementar en cualquier lugar. Vea cómo las soluciones de IBM y Red Hat pueden aumentar la productividad, reducir costos, mejorar los resultados comerciales y acelerar su transformación digital, sin importar en qué industria se encuentre.

Explore las soluciones de IBM y Red Hat