¿Qué es el software de código abierto?
Dedique algún tiempo a leer sobre software y verá las palabras «código abierto», probablemente sin ningún tipo de explicación sobre lo que eso significa. ¿Por qué nadie se molesta en explicarlo?
Bueno, es un concepto complicado de explicar en solo un par de frases. Podría, por ejemplo, decir que el software de código abierto es gratuito, y eso no sería inexacto: la mayoría del software de código abierto es de uso gratuito y algunos defensores prefieren las palabras «software libre» a «software de código abierto». Pero para entender realmente esta idea, necesitamos hablar sobre la definición de «gratis» porque gran parte del software que es de uso gratuito no es de código abierto.
¿Ver? Ya me atasqué. Déjame retroceder y responder la pregunta que inevitablemente buscaste en Google: ¿qué significa código abierto?
Literalmente, solo dime qué es el código abierto
El término «código abierto» se refiere a cualquier software donde el código fuente está disponible gratuitamente para que cualquiera pueda leerlo, editarlo y redistribuirlo. Esto significa que cualquiera que quiera puede revisar el código detrás del programa y aprender cómo funciona. También significa que cualquiera que quiera puede usar ese código para sus propios proyectos. Ejemplos famosos de software de código abierto incluyen WordPress, Firefox y el sistema operativo Linux.
Lo opuesto al software de código abierto es el software de código cerrado, también llamado software propietario. Microsoft Word, por ejemplo, es de código cerrado: Microsoft no hace público el código fuente de esa aplicación.
En los años 90, había una línea bastante clara entre el software de código abierto y el de código cerrado, pero eso es menos cierto ahora: muchas aplicaciones ahora son una combinación de los dos. Google Chrome y macOS, por ejemplo, están construidos con una combinación de código fuente abierto y cerrado.
Como dije: esto puede complicarse un poco, y ya me salté muchos matices. Es por eso que la mayoría de los artículos que mencionan que el software es de código abierto no se molestan en decir lo que eso significa. Pero es un concepto que vale la pena comprender, así que profundicemos un poco más.
¿Qué es el código fuente?
Mencioné que el código abierto se refiere al software donde el código fuente está disponible gratuitamente, pero eso solo es útil si sabes qué es el código fuente.
En resumen: el software está escrito por humanos, y el código fuente es el aspecto del software mientras esos humanos lo escriben.
Cada aplicación que ha usado alguna vez fue escrita por alguien, o un equipo de alguien, en documentos de texto plano usando un lenguaje de programación. Si no es un programador, probablemente no sacaría mucho provecho de ver este código fuente, pero los programadores que entienden un idioma pueden hacerse una idea de cómo funciona una aplicación al examinarlo.

Por lo tanto, el software de código abierto es un software en el que este código fuente está disponible gratuitamente. Cualquiera que quiera puede descargar el código fuente y aprender cómo funciona una aplicación determinada, o incluso hacer sus propios cambios.
Espera, ¿eso significa que cualquiera puede cambiar algo sobre el programa?
No y sí. Es importante tener en cuenta que los proyectos de código abierto no están completamente descentralizados. Generalmente, alguien o alguna organización administra las cosas y, por lo general, hay un equipo de colaboradores consistentes. Este podría ser un solo desarrollador, o podría ser una gran combinación de voluntarios e individuos pagados para trabajar en el proyecto por una organización sin fines de lucro o una empresa.
A veces, los empleados asalariados de varias empresas contribuyen con código al mismo proyecto de código abierto. A veces, un proyecto de código abierto es el proyecto de pasión del tiempo libre de una sola persona, con la contribución ocasional de cualquier otra persona. Varía enormemente.
En la mayoría de los casos, cualquier programador puede contribuir a un proyecto de código abierto, pero la contribución de código no significa que terminará en la aplicación. Por ejemplo: no podría escribir un montón de código y agregarlo a Firefox sin ningún tipo de supervisión; existe un proceso para contribuir, un proceso que incluye a alguien del equipo que revisa y aprueba las contribuciones.
Muchos proyectos de código abierto más pequeños se encuentran en sitios como GitHub, donde los usuarios pueden proponer cambios que el propietario del proyecto puede decidir si los incorpora o no a la aplicación. Sitios como estos facilitan el seguimiento de quién hizo qué contribuciones y cuándo, y los mantenedores de código abierto generalmente se aseguran de que los principales contribuyentes obtengan crédito por su trabajo.
Así que no, nadie puede realizar cambios indiscriminados en ningún proyecto de código abierto, pero cualquiera puede hacerlo en cualquier proyecto de código abierto.
… que es un tenedor?
Cualquiera puede tomar el código fuente de un proyecto de código abierto y usarlo para iniciar su propio proyecto. A esto se le llama bifurcación. Podría, por ejemplo, tomar el código de Firefox, renombrarlo como «Excelente navegador de Justin Pot», cambiar el logo a mi cara y ofrecerlo al mundo. Eso sería perfectamente legal. No sería la primera persona en hacer esto.
Ninguna bifurcación de Firefox ha superado a Firefox en términos de popularidad, pero no hay ninguna razón por la que no pueda suceder. Open Office solía ser la suite ofimática de código abierto más popular, pero después de cierta controversia (que ni siquiera voy a intentar profundizar), se lanzó una bifurcación llamada Libre Office. Libre Office es mucho más popular que Open Office en este momento.
Y, a veces, las grandes empresas utilizan el código fuente abierto, que bifurcan proyectos de formas interesantes. Microsoft Edge, el navegador predeterminado en Windows, se basa en parte en Chromium, que es la aplicación de código abierto en la que se basa Chrome. Es por eso que puede instalar complementos de Chrome en Edge si lo desea; ambas aplicaciones están creadas en el mismo código fuente abierto.
Esto es más profundo. Chromium se construyó originalmente, en parte, usando código de WebKit, un proyecto de código abierto que Apple desarrolló y usó para Safari. Entonces, los tres navegadores más comunes en la web, creados por tres de las compañías de tecnología más grandes, se construyen utilizando el mismo código fuente abierto.
¿El software de código abierto es gratuito?
La mayor parte del software de código abierto se puede descargar y utilizar de forma gratuita. Puedes descargar Firefox gratis ahora mismo, por ejemplo. Pero la descarga gratuita no es lo que hace que el software sea de código abierto.
«Gratis», en inglés, puede referirse a algo que no cuesta dinero, o puede referirse a la idea de libertad. El adagio «libre como en la libertad de expresión, no libre como en la cerveza gratis» proviene de esta distinción.
Hablando de eso, usemos la cerveza como ejemplo. Probablemente podría atraer a una multitud instalando un puesto en el centro con un gran letrero de «cerveza gratis». Si les di a todos los que aparecieron una receta de cerveza y les dijera que son libres de usar esa receta para prepararla en casa, probablemente no haría muchos amigos. Sin embargo, estaría a la altura de la «libertad de expresión». Sería cerveza de código abierto. Si, por el contrario, te di un puñado de cerveza y te di la receta, no te di cerveza de código abierto. Te acabo de dar cerveza gratis. (Es posible que prefieras eso, lo cual entiendo).
Algunos programas de código abierto funcionan de manera similar, en diferentes grados. WordPress es un buen ejemplo. Hay una diferencia entre WordPress.org y WordPress.com: WordPress.org es donde reside la descarga gratuita y de código abierto para WordPress, pero configurar un sitio web de WordPress no es tan simple como instalar software, como lo es con Firefox. WordPress es un software que se utiliza para crear un sitio web, y configurar un sitio web significa que necesita un nombre de dominio y un servidor. No hay nada que le impida descargar WordPress y configurarlo en su computadora, pero esa no es una gran idea para la mayoría de las personas. A muchas personas les resulta más fácil ir a WordPress.com y pagarles.
Muchas empresas que producen software de código abierto o contribuyen al software de código abierto se basan en modelos similares. El producto de código abierto es gratuito si desea configurarlo usted mismo, o puede pagarle a la compañía detrás del software para que lo configure por usted.
Algunas preguntas más con enlaces a respuestas
Podría seguir y seguir y seguir. Hay como cuarenta años de drama que ni siquiera he mencionado. En cambio, aquí hay algunos detalles más.
-
¿Es el software de código abierto de dominio público? No: el software de código abierto tiene licencia; es solo que la licencia indica que cualquiera es libre de ver el código fuente y modificarlo. En cierto modo, el código abierto utiliza la ley de derechos de autor para hacer cumplir el intercambio; esto a veces se denomina «copyleft». Hay muchas licencias de código abierto diferentes, pero para profundizar en ellas se necesitarían varios libros.
-
¿Es seguro el software de código abierto? Sí, el software de código abierto generalmente se considera seguro. Podría pensar que el hecho de que el código fuente sea público significaría que sería más fácil para los piratas informáticos encontrar exploits, pero el código fuente abierto también es más fácil de ver para los investigadores de seguridad y para que los equipos de seguridad de todo el mundo contribuyan con parches. Este artículo profundiza en los pros y los contras, si tiene curiosidad.
-
¿Cómo puedes encontrar proyectos de código abierto? La mayoría de las empresas de software tienen una página de código abierto, donde cualquiera puede descargar los proyectos de código abierto utilizados para crear sus productos. Apple y Google tienen uno. Nosotros también: aquí están las páginas de código abierto de Zapier, donde puede descargar las herramientas que creamos mientras trabajaba en la integración de miles de aplicaciones.
