¿Qué es el software de código abierto?
El software de codigo abierto se desarrolla a través de colaboración abierta, y su código fuente está disponible para que cualquiera pueda utilizarlo, examinarlo, modificarlo y redistribuirlo.
Un hombre trabajando en un ordenador local
¿Qué es el software de código abierto?

El software de código abierto es software desarrollado y mantenido a través de una colaboración abierta, y disponible, normalmente de forma gratuita, para que cualquiera pueda utilizarlo, examinarlo, modificarlo y redistribuirlo como prefiera. Esto contrasta con las aplicaciones de software propietario o de código cerrado, por ejemplo, Microsoft Word o Adobe Illustrator, que su creador o titular del copyright vende a los usuarios finales y no se pueden editar, mejorar ni redistribuir, excepto según lo especificado por el propio titular del copyright.

El término de código abierto también se refiere más generalmente a un enfoque basado en una comunidad para crear cualquier propiedad intelectual (como software) a través de los principios 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 los 70, el código informático se consideraba implícito al funcionamiento del hardware del sistema, y no una propiedad intelectual exclusiva sujeta a protección de copyright. Las organizaciones programaban su propio software, y el uso compartido de código era una práctica común.

La CONTU (Commission on New Technological Uses of Copyrighted Works) se estableció en 1974 y concluyó que el código de software era una categoría de trabajo creativo apta para la protección de copyright. Esto impulsó el crecimiento de la publicación de software independiente como sector, con el código fuente de propiedad como fuente primaria de ingresos. A medida que la informática personal trajo aplicaciones a todos los escritorios corporativos y a muchos hogares, el mercado de software se volvió intensamente competitivo y los editores de software se volvieron cada vez más pendientes de posibles infracciones de sus derechos de propiedad.

Así, en 1983 se inició 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 pudieran personalizar el software propietario, aunque lo estimaran necesario para realizar su trabajo. Stallman sentía que el "software debía ser libre, en el sentido de libertad de expresión, no como barra libre", y defendió la noción de que el software estuviera disponible libremente para su personalización.

Stallman fundó la Free Software Foundation, a partir de la cual surgiría 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 copyleft, la GNU General Public License (GPL), que requería que cualquiera que mejorara su código fuente también publicará su versión editada libremente para todo el mundo.

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 de arriba a abajo típico del desarrollo de software propietario, donde un grupo principal (al que llamó "The Cathedral") se encargaba de todo el desarrollo, frente al desarrollo público abierto y libremente compartido a través de Internet (The Bazaar). Poco después, Netscape Corporation publicó el código de su navegador Mozilla como código abierto, y el movimiento de código abierto ganó legitimidad.

Como para muchos el término de Stallman "free software" enfatizaba su gratuidad (free es libre y gratuito en inglés) como el valor principal del software, en 1999 se adoptó el término "código abierto". La organización Open Source Initiative se creó en su defensa. Además, ha establecido unas reglas básicas para el sector a través de la definición de código abierto, y alberga licencias de código abierto de conformidad con la normativa. Actualmente, se utilizan los términos software libre, software de código abierto (u OSS), software de código abierto y libre (FOSS) y software de código abierto libre/free (FLOSS) para referirse a lo mismo: software con código fuente disponible para uso público y personalización.

Código abierto en informática personal y empresarial

El software de código abierto ahora juega un papel fundamental en la informática: las tecnologías de código abierto 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 de código 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, una suite de aplicaciones de productividad de oficina que rivaliza con Microsoft Office
     

  • GIMP (GNU Image Manipulation Program), una alternativa de código abierto a Adobe Photoshop
     

  • VLC Media Player, una aplicación multiplataforma para ver vídeos

Los programas de código abierto también son muy utilizados en redes, empresas y cloud computing. Las categorías de software de código abierto citadas por los profesionales de TI como las más comunes en los despliegues 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
     

  • Marcos para inteligencia artificial/machine learning/deep learning

Por qué usuarios y 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 sistemas o dispositivos móviles. También es normal que los usuarios 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 ni siquiera mirar, el código fuente.

Una compañía, por otro lado, podría elegir software de código abierto sobre una alternativa de propiedad por su bajo (o ningún) coste, la flexibilidad para personalizar el código fuente o la existencia de una gran comunidad que da soporte a 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 ampliar su reputación y conectar con otros en el campo. Ahora es común que las empresas proporcionen empleados remunerados a proyectos de código abierto para apoyar la vitalidad del desarrollo de software de código abierto y ayudar a asegurar productos de alto calidad.

Si bien los productos de código abierto pueden ahorrar a las empresas el coste de las licencias, pueden incurrir en otros costes, generalmente para la integración de red, el usuario final y el soporte TI, así como otros servicios que normalmente se incluyen con el software propietario. Aún así, muchas empresas consideran que el software empresarial de código abierto es al menos tan fiable y seguro como el software propietario, y se sienten más cómodas 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 software de código abierto

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

A medida que estos y otros proyectos de código abierto similares han madurado, han involucrado a muchos miles de programadores que contribuyen con innumerables líneas de código, así como realizando pruebas de software, redactando documentación, creando el sitio web del proyecto y más.

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

Con el tiempo, se necesita un ecosistema para dar soporte a los proyectos de software de código abierto. Los servicios de alojamiento de código como GitHub, Bitbucket, SourceForge y Google Code proporcionan repositorios centrales, control de versiones y otras funciones que habilitan diversos grupos de trabajo distribuidos para colaborar en proyectos de código abierto y gestionarlos. Solo GitHub ha registrado 83 millones de desarrolladores y más de 20 millones de repositorios de proyectos abiertos (cada repositorio representa una rama exclusiva de un proyecto de código abierto).

Han surgido diversas organizaciones sin fines de lucro para dar soporte y financiar el mantenimiento continuo de proyectos de código abierto, como la Free Software Foundation y la Open Source Initiative (OSI). Y hay muchas bases para aplicaciones específicas, como la Linux Foundation, que apoya programas específicos de código abierto y proyectos relacionados que soportan estas tecnologías.

Software de código abierto y propiedad intelectual

"Código abierto" y "propietario" representan enfoques alternativos a la titularidad de propiedad intelectual (PI) incorporada dentro de una aplicación. Con el código abierto, la PI está dirigida al beneficio público, sin ninguna motivación económica adyacente a la titularidad de la propiedad intelectual. Por el contrario, el software propietario monetiza el valor de la propiedad intelectual (mediante el cobro de una suscripción o tasa de licencia de propiedad).

La idea detrás del software de código abierto, sin embargo, no es principalmente un mensaje anti-lucro o anti-capitalismo, sino más bien que, en manos de su comunidad de usuarios, el software naturalmente alcanzará su máximo potencial proporcionando mayor valor a más usuarios. El mayor proyecto de código abierto de la historia, Internet, originalmente se utilizó para compartir trabajos académicos; todo más allá de ese pequeño caso de uso es el resultado de innumerables mentes que visualizaron e implementaron nuevas posibilidades.

Si bien el software de código abierto está disponible gratuitamente para el público, no está en el 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 copyright tradicionales, los creadores de software de código abierto originaron lo que llamaron "copyleft", que permite el uso público, la alteración y la redistribución ilimitados del código fuente, pero impide que otros hagan obras basadas en el código del software protegido con copyright (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 registrar y vender obras derivadas construidas sobre código de código abierto. 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 estipuló que cualquier persona podía reescribir su software del modo que considerara apropiado, siempre y cuando el código resultante se publicara libremente para todo el mundo. 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 del copyright para protegerse contra reclamaciones posteriores de propiedad restrictiva por parte de otros.

Desde entonces, se han desarrollado numerosas licencias de software de código abierto. La Open Source Initiative enumera una lista con más de 100 licencias de código abierto aprobadas. Algunos de estas permiten crear productos de propiedad a partir de código de código abierto.

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

Modelos empresariales de código abierto

Si bien parece que la creación de software de código abierto es una empresa noble, incluso caritativa, su creación, mantenimiento y evolución requiere trabajo, y realizar este trabajo es una cuestión de dinero. Afortunadamente, los proyectos de código abierto, y las empresas creadas en torno a ellos, pueden prosperar de diversas formas.

Una de ellas es a través de contribuciones caritativas a fundaciones. Las corporaciones tienen interés en dar soporte al software de código abierto, ya que proporciona una funcionalidad importante con un ahorre de costes significativo, y muchas contribuirán con fondos e incluso dedicarán empleados asalariados al trabajo en proyectos de código abierto. Pero esto cubre principalmente el mantenimiento a largo plazo de la tecnología, y no genera beneficios para el proyecto de código abierto.

Un modelo empresarial más común es el de cobrar a los clientes por soporte y experiencia. En 1993, Red Hat comenzó a vender su redistribución empresarial del sistema operativo Linux, cobrando a los clientes por soporte y funciones adicionales destinadas específicamente a resolver problemas que una empresa podría encontrar al desplegar un sistema operativo no organizado y con actualizaciones continuas. En 2012, Red Hat se convirtió en la primera compañía 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 mil millones de dólares, la mayor adquisición de software 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 alojamiento web, soporte y funcionalidad adicional en el sitio (p. ej., funcionalidad de comercio electrónico, herramientas de SEO).

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

Soluciones relacionadas
Software Red Hat en IBM Cloud

Las soluciones de IBM y Red Hat pueden aumentar la productividad, reducir los costes y mejorar los resultados del negocio.

Explore las soluciones de IBM y Red Hat
IBM LinuxONE

Descubra el servidor de software de código abierto seguro con niveles óptimos de seguridad y escalabilidad para aplicaciones críticas.

Explore LinuxONE
Linux on IBM Z

El sistema operativo Linux en la plataforma de mainframe de IBM Z presenta privacidad de datos y ciberseguridad en un multicloud híbrido.

Explore Linux on IBM Z
Enterprise Linux on IBM Power

Con Enterprise Linux® on IBM® Power®, puede aumentar las numerosas ventajas que ofrece la tecnología de código abierto —fiabilidad, seguridad y escalabilidad— con destacadas opciones de despliegue nativas en la nube.

Explore Linux on Power
Recursos Código abierto en IBM

Desde blockchain hasta contenedores, IA y sistemas operativos, nuestros desarrolladores están creando proyectos 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 el riesgo de comprometer su seguridad.

Dé el siguiente paso

En IBM hemos convertido en nuestra misión maximizar la velocidad de los clientes en su transformación digital del negocio, con una base ágil en torno a la tecnología de código abierto Red Hat que le permite crear una vez y desplegar en cualquier lugar. Vea cómo las soluciones de IBM y Red Hat pueden aumentar la productividad, reducir costes, mejorar los resultados de negocio y acelerar su transformación digital, independientemente de cuál sea su sector.

Explore las soluciones de IBM y Red Hat