El desarrollo de software de código abierto (open source) es un enfoque de desarrollo en el que el código fuente de un sistema de software se publica y se invita a voluntarios a participar en el proceso de desarrollo (Raymond 2001), sus raíces son el software libre de la Free Software Foundation (www.fsf.org), sus orígenes se remontan a la década de 1980 y a su fundador, Richard Stallman que, a su vez, creó el proyecto GNU y la licencia GPL, que abogaba por que el código fuente no debía ser propietario sino siempre disponible para que los usuarios lo pudieran examinar y modificar como desearan. En su origen, el software de código abierto nació con unos principios de colaboración, asociación, intercambio de información, acceso rápido, menor costo de la tecnología y como evolución del software libre, con ciertas semejanzas pero también bastantes diferencias.
El término "open source" (código abierto) fue acuñado por Christine Peterson el 3 de febrero de 1998, en aquel entonces Directora Ejecutiva de Foresight Institute. Su concepto de código abierto implicaba promoción de software seguro, distribuido y desarrollado libremente, de modo que permitiera:
• Posibilidad de descarga del software y pago por los servicios.
Base del producto gratuita y módulos de pago.
• Modelo freemium: una versión gratuita y otra de pago por funcionalidades avanzadas.
• Producto gratuito y actualizaciones de pago.
• Licencias abiertas para negocios "business source".
El software abierto es la columna vertebral de Internet y de la ingeniería de software. Linux el sistema operativo más ampliamente utilizado en servidores, así como el servidor web de Apache. Otros productos importantes uni- versalmente utilizados como productos open-source son Java, el IDE Eclipse y el sistema de gestión de bases de datos MySQL, así como sistema operativo Android, instalado en millones de dispositivos móviles. Además, la ma- yoría de los grandes fabricantes de la industria informática como IBM y Oracle soportan el movimiento open-source y muchos de sus productos software son de código abierto.
Actualmente, es una tendencia creciente en las empresas y en el caso del software de Big Data, las tecnologías fundamentales de Big Data y de programación avanzada, utilizan open-source, tales como Hadoop, Spark, Hive, Python, etcétera.
Licencias open-source
Existe un gran debate sobre la licencia de software (Sommerville, pp. 220-221). Aunque los principios fundamentales del desarrollo de open-source establecen que el código fuente debe estar disponible libremente, no significa que el desarrollador pueda hacer lo que crea conveniente con ese código. Legalmente, el desarrollador del código (bien una persona o una empresa) es propietario del código. Existe un gran movimiento y tendencias sobre las licencias de software que puedan ser abiertas, propietarias y que se puedan vender como sistemas de fuente cerrados. La mayoría de las licencias de open-source se certifican o distribuyen en tres modelos:
1. La GNU General Public License (GPL). Esta licencia significa que si se utiliza software de fuente abierta, está protegido y garantiza que los usuarios finales pueden usarlo, estudiarlo, compartirlo o modificarlo; pero siempre será código abierto.
2. La GNU Lesser General Public License (LGPL). Es una variante de la licencia GPL en donde se pueden escribir componentes que enlazan el código fuente sin tener que publicar la fuente de estos componentes. Sin embargo, si se modifica el software con licencia, entonces se debe publicar éste como un open-source.
3. El Berkeley Standard Distribution (BS) License. Es una licencia no recíproca, que significa que no se está obli- gado a reeditar cualquier cambio o modificaciones realizados al código open-source. Se puede incluir el código en sistemas propietarios que son vendidos. Si se utilizan componentes de código abierto se debe agradecer al creador original del código.
La licencia MIT es una variante de la licencia BSD con condiciones similares.
