El software de código abierto es software cuyo código fuente se publica bajo una licencia que permite usarlo, estudiarlo, modificarlo y redistribuirlo. Esa definición cabe en una línea; lo que viene después es lo que conviene entender antes de usarlo o publicarlo.
Qué es el código fuente
Un programa se escribe en un lenguaje legible por personas (Python, C, JavaScript) y luego se compila o interpreta para que el computador lo ejecute. El código fuente es esa versión legible. Sin él, modificar un programa es prácticamente imposible. Por eso la disponibilidad del código es la condición mínima de todo lo que sigue.
Un poco de historia
En los años sesenta y setenta compartir código era lo normal entre universidades y laboratorios. A comienzos de los ochenta el software se volvió un producto comercial y empezó a cerrarse. Como respuesta, Richard Stallman lanzó el proyecto GNU en 1983 para construir un sistema operativo completamente libre, y escribió la licencia GPL.
En 1991 Linus Torvalds publicó el núcleo Linux, que combinado con las herramientas de GNU completó ese sistema. En 1998 nació el término open source y la Open Source Initiative, con un discurso orientado a empresas. Ese mismo año Netscape liberó el código de su navegador, origen de Mozilla y Firefox.
Hoy el código abierto es la base de casi toda la infraestructura digital. La diferencia entre “software libre” y “código abierto” la explicamos en otro artículo.
Las licencias, en serio
Publicar código en internet no lo hace abierto. Lo que lo hace abierto es la licencia. Hay dos grandes familias:
Permisivas. Permiten casi todo, incluso usar el código en productos cerrados, con la condición de mantener el aviso de copyright.
- MIT: la más corta y popular.
- BSD (2 y 3 cláusulas): similar a MIT.
- Apache 2.0: agrega una licencia explícita de patentes, lo que la hace preferida en entornos corporativos.
Copyleft. Permiten modificar y distribuir, pero exigen que las versiones distribuidas mantengan la misma licencia.
- GPL (v2 y v3): copyleft fuerte. Si distribuyes un programa que incluye código GPL, todo el programa debe ser GPL.
- LGPL: copyleft más débil, pensado para bibliotecas. Puedes enlazarla desde software cerrado.
- MPL 2.0: copyleft a nivel de archivo.
- AGPL: como la GPL, pero también se activa cuando ofreces el programa como servicio por la red, no solo cuando lo distribuyes.
La elección importa, y la explicamos paso a paso en qué licencia elegir para tu proyecto. Si publicas una biblioteca con MIT, cualquier empresa puede usarla sin devolver nada. Con GPL, las mejoras que distribuyan tendrán que ser abiertas.
Quién lo hace y quién lo paga
La imagen del voluntario que programa de noche existe, pero no es la regla en los proyectos grandes. Buena parte del código de Linux, Kubernetes o PostgreSQL lo escriben personas pagadas por empresas que dependen de esos proyectos.
Los modelos de financiamiento más comunes:
- Empresas usuarias que pagan a empleados para contribuir.
- Soporte y servicios: el software es libre, la garantía se cobra.
- Open core: el núcleo es abierto y algunas funciones avanzadas son comerciales.
- Servicios gestionados: la empresa opera el software en la nube por ti.
- Fundaciones y donaciones: Linux Foundation, Apache Software Foundation, GitHub Sponsors, Open Collective.
Cómo se organiza un proyecto
Casi todos usan Git y una plataforma como GitHub, GitLab o Codeberg. El flujo típico es así: alguien reporta un problema (issue), alguien propone un cambio (pull request), los mantenedores lo revisan y lo aceptan o piden ajustes. Los proyectos grandes tienen reglas de contribución, código de conducta y procesos formales de gobierno.
Riesgos que conviene conocer
- Seguridad de la cadena de suministro. Un proyecto moderno puede depender de cientos de paquetes. Casos como Log4Shell (2021) o la puerta trasera en xz (2024) mostraron que una dependencia pequeña puede afectar a millones de sistemas.
- Mantenedores agotados. Mucho software crítico lo cuida muy poca gente.
- Cambios de licencia en proyectos controlados por una sola empresa.
Nada de esto es exclusivo del código abierto, pero en el código abierto se puede ver.
Por dónde empezar
Si quieres usarlo, parte por esta guía práctica. Si quieres publicar el tuyo, lee por qué vale la pena hacerlo.
Preguntas frecuentes
¿Qué significa open source? Significa código abierto: software cuyo código fuente se publica bajo una licencia que permite usarlo, estudiarlo, modificarlo y redistribuirlo. El término nació en 1998, junto con la Open Source Initiative.
¿Es lo mismo código abierto que software libre? En la práctica casi todas las licencias califican como ambas cosas, pero el enfoque es distinto: el software libre pone el acento en las libertades de quien usa el programa y el código abierto en las ventajas prácticas de desarrollo. Lo explicamos en software libre frente a código abierto.
¿Cuáles son ejemplos de software de código abierto? Linux, Firefox, PostgreSQL y Kubernetes son algunos de los más conocidos.
¿Publicar mi código en GitHub lo hace de código abierto? No. Lo que lo hace abierto es la licencia: sin ella, el autor conserva todos los derechos y nadie puede usar el código legalmente.
¿Cómo se financian los proyectos de código abierto? Con empresas que pagan a sus empleados para contribuir, venta de soporte y servicios, el modelo open core, servicios gestionados en la nube y donaciones a través de fundaciones o plataformas.