Beneficios Del Software Open Source

Hace unos días, toda mi familia quería ver una película. Solo estaba disponible en versión original, pero encontré un archivo con los subtítulos en español. Como éramos 4 personas, no podíamos verla en la pequeña pantalla de mi portátil, así que pasé los dos archivos (el del video, y el de los subtítulos) a un disco duro, y lo enchufé a la tele, esperando que los subtítulos apareciesen en la parte de abajo de la pantalla, igual que cuando reproducía la película en el ordenador. Pero…¡horror! El disco duro no sabía “conectar” los dos archivos. Así que decidí mirar por internet para buscar una solución al problema.

Pronto, encontré un tutorial sobre cómo fusionar, por así decirlo, el vídeo y los subtítulos en un solo archivo. El método requería utilizar el programa “VLC Player”, un reproductor de vídeo con muchísimas funcionalidades, y aún así, gratuito. ¿Cómo es posible que un producto que sirve para hacer tantísimas cosas sea gratis? La respuesta es sencilla: VLC Player no estaba hecho por una sola persona, ni una sola empresa que buscase sacar beneficio vendiendo licencias que permitan usarlo, sino por miles de personas, que son a la vez desarrolladores y usuarios. Cualquier persona puede ver el código fuente, y contribuir, añadiendo mejoras y cambios. Esta es la definición del software libre o, como lo vamos a llamar a partir de ahora, “open source”.

Normalmente, los productos en forma de software son creados y distribuidos por una sola empresa, que cobra por su uso, ya sea en la forma de un pago único, o de una suscripción periódica. La comunidad de usuarios puede tener más o menos influencia en la decisión de esta compañía de añadir una u otra función nueva, pero al final son los miembros de la empresa los que tienen la última palabra sobre si esa característica va a ser incorporada. Además, distribuir el software a personas que no hayan pagado por él es considerado piratería, y lo normal es que no dejen que nadie del exterior conozca cómo funciona su programa, para así evitar que la competencia haga su producto igual que ellos.

Todas estas “normas” han sido rechazadas por la comunidad open source. Muchas veces se da la confusión de considerar que un producto es open source solo porque comparte su código para que todos lo puedan ver, y/o permite la redistribución de manera gratuita y no controlada por parte de personas ajenas a los creadores, pero eso sería una definición completa del open source. La Open Source Initiative(OSI) considera un proyecto open source si,a parte de esas dos condiciones, cumple que: se permite la modificación del código por parte de cualquier persona, y la distribución del programa con esas modificaciones; no restringe el uso de ese programa junto con otros, open source o no, ni los campos en los que puede ser usado(no puedes poner una cláusula en los términos y condiciones de uso que especifique que el software no pueda ser usado, por ejemplo, en una investigación científica, o dentro de un entorno de empresa).

El término open source fue utilizado por primera vez el 3 de febrero de 1998, por Christine Peterson, entonces directora ejecutiva en el Instituto Foresight, una organización sin fines de lucro centrada en investigar nuevas tecnologías, y promover el uso responsable de éstas. En reuniones semanales centradas en discutir cómo la seguridad informática podría ser mejorada, llegaron a la conclusión de que lo que entonces era llamado comúnmente, dentro de los círculos de personas familiarizadas con el mundo de la tecnología, “free software” , era la solución. El hecho de que en inglés la palabra free se refiriese tanto a algo gratuito(libre de coste), o algo libre, en el sentido de ausencia de obstáculos o ataduras, hacía que predicar el uso del free software resultase confuso, pues no todos los programas gratuitos cumplen las condiciones listadas anteriormente. Esa confusión se elimina en español, traduciendo el término como “software libre”(de hecho, la palabras palabras libre y gratis son usadas en ocasiones en conversaciones en inglés para dejarlo todo claro).

Desde los años 80, el uso del free software era promovido principalmente por la Free Software Foundation(FSF), una organización sin ánimo de lucro fundada por Richard Stallman, estudiante de Harvard e investigador en el laboratorio de inteligencia artificial en el MIT, en 1985. Durante su estancia en el MIT, Stallman y sus compañeros habían desarrollado un programa que notificaba a través de un SMS cuando una la impresora había terminado a la persona que había iniciado el trabajo de impresión, y a todos los que trabajaban en el laboratorio cuando la impresora se quedaba atascada, o sufría algún tipo de error. Cuando decidieron cambiar de impresora, la empresa a la que se la compraron decidió no darle acceso al código fuente al laboratorio del MIT, lo cual hizo que Richard Stallman estuviese todavía más convencido de la necesidad del software libre. A día de hoy, la FSF sigue existiendo, y Stallman sigue viajando por todo el mundo dando charlas sobre el software libre.

Para evitar la confusión de términos, el equipo directivo de Foresight pasó semanas pensando en alternativas para nombrar a los programas cuyo código fuente está disponible. Entre dos de sus reuniones semanales, Peterson se le ocurrió usar open source. Open, abierto, haciendo referencia a que cualquiera puede acceder al código fuente, o source code. A varios compañeros de Christine, entre ellos Todd Anderson, programador, les gustó el término, así que lo apoyaron en la votación que se hizo el día 5 de febrero de 1998. Poco después montaron la página web de lo que sería la Open Source Initiative. Para que el “rebranding” de free software a open source software fuese efectivo, contaron con la colaboración de Tim O’Reilly como difusor del término dentro de los círculos de entusiastas de la informática.

Una de las cosas que impulsaron la promoción del open source por parte de Foresight fue la liberación del código fuente del navegador Netscape, el más usado en ese tiempo. La licencia usada por Netscape permitía que ellos siguieran sacando versiones propietarias de su producto usando gran parte del código fuente de la versión open source, mientras que la licencia GPL, impulsada por Stallman, no permitiría algo así. Aunque se podría decir que el objetivo de la FSF y de la OSI son similares, si no idénticos, Richard Stallman y su fundación ofrecen una visión del asunto basada mucho más en la moralidad(sostienen que el software no-libre es una vulneración de los derechos humanos) que en la pragmática, como la causa de la OSI.

Al principio, se puede pensar, “¿de verdad que quiero instalar un programa así en mi ordenador? Si cualquiera puede añadirle cosas, también pueden añadirle un virus o algo por el estilo, ¿no?”. ¡Para nada! En la práctica, es todo lo contrario. Ya que cualquier persona con conocimientos de programación puede revisar el código fuente, es mucho más probable de que se conozca cualquier vulnerabilidad, y de que sea arreglada rápidamente por la gran comunidad de usuarios-desarrolladores.

“Dado un número suficientemente elevado de ojos, todos los errores se vuelven obvios”.

En esto se resume en la llamada “Ley de Linus”, llamada así por el creador del sistema operativo open source Linus Torvald. Además, el hecho de que se introduzcan cambios constantes en el programa hace que se cree una comunidad muy activa a su alrededor, a la que puedes acudir buscando ayuda si tienes cualquier tipo de duda o problema al usarlo. La mayoría de proyectos open source usan las llamadas “metodologías ágiles”, llamadas así porque permite que las personas que trabajan en él arreglen o modifiquen cualquier característica siempre que quieran y puedan, sin tener que esperar a que les sea asignada esa tarea por un jefe de proyecto.

¿Qué beneficios tiene esto? La importancia que se le da a la comunidad hace que a los productos open source se les añaden las características que los usuarios quieren, y no los que una empresa de software cree que quieren. Además, gracias a las metodologías ágiles, esas características suelen estar disponibles nada más estar terminadas, y no de manera periódica (dos veces al año, anualmente…). Así, los desarrolladores pueden recibir feedback de los usuarios lo más pronto posible, y el ciclo vuelve a empezar. Un proyecto open source que siga activo no estará mucho tiempo con usuarios pidiendo una característica, o quejándose de que algo funciona mal.

Este sentido de comunidad entre los usuarios también se encuentra entre los desarrolladores que contribuyen a un proyecto. Se suelen mantener en contacto entre ellos, a través de foros, listas de email, redes sociales… etc. Así, aprenden entre ellos, y se evita que en lugar de pensar en varias soluciones para un problema que están bien, pueden juntarse para idear una sola solución que sea lo más eficiente y de la mejor posibilidad posible. Se podría comparar con los alquimistas, que antiguamente guardaban todos los conocimientos obtenidos y sus nuevos descubrimientos en grandes tomos y cuadernos que no dejaban ver a nadie. Esto era poco eficiente, pues a lo mejor otro alquimista había descubierto lo mismo que tú, y cada uno de vosotros, individualmente, tiene que seguir progresando en su investigación y haciendo experimentos por su cuenta. Cuando estos alquimistas decidieron compartir sus conocimientos entre ellos, los empezamos a llamar científicos, y la humanidad empezó a progresar cada vez más rápido.

Claro que, la revolución open source no sucedió hace tanto tiempo como la revolución científica, tampoco es algo que empezase ayer. El open source lleva acompañando al mundo de la tecnología prácticamente desde su nacimiento.

En la década de los 70, casi ningún hogar tenía un ordenador. Si querías una computadora personal o PC, tenías que reunir estos componentes y montarlo tú mismo. Si necesitabas un programa, tenías que programarlo tú. La información necesaria para hacer esto era transmitida de una persona a otra, a través de grupos locales de entusiastas tecnológicos o de revistas sobre el tema. Pero en 1981, la empresa IBM lanzó al mercado el IBM PC, un ordenador pre-montado, que llevó el hardware a un número mucho mayor de gente.

Claro que, junto con el hardware, tiene que venir el software. IBM contrató a Microsoft para que crease MS-DOS, el sistema operativo que venía instalado en sus ordenadores. Seguir creando software libre y gratuito, cuando podrías venderlo y ganar dinero, se convirtió casi en una contracultura.

“¿Quién se puede permitir hacer un trabajo profesional a cambio de nada? ¿Qué aficionado se puede pasar 3 años programando, encontrando todos los bugs, escribiendo documentación para su producto y distribuyéndolo gratis?

Ese era el mensaje que de Bill Gates, cofundador de Microsoft, intentaba trasladar a los entusiastas del open source en una carta escrita en 1976, titulada “Carta abierta a los aficionados”.

Participar en la comunidad open source entonces era increíblemente difícil. Para contribuir a un proyecto tenías que encontrar alguna manera de contactar con el creador o alguno de los coordinadores. Además, cada proyecto utilizaba unas herramientas de desarrollo distintas. Por ejemplo, había muchos programas de control de versiones, que registran todos los cambios hechos al código,se usan para que las contribuciones de un desarrollador no sean repeticiones de las de otro, y cada vez que entrabas a un proyecto nuevo, tenías que aprender a usar el que utilizaban ellos.

A finales de los 90, casi todas las herramientas que podías necesitar para trabajar con un ordenador, tenían un equivalente open source, pero a las grandes empresas tecnológicas seguían sin convencerles. En cambio, a las pequeñas empresas de cualquier campo, que descubrieron que usar software open source les suponía un gran ahorro, les encantaba. Una empresa que intentó aprovecharse de ello fue VA Linux, fundada como VA Research en 1993, que intentó vender portátiles con Linux pre-instalados. Cuando se dieron cuenta de que cuanta más gente usase open source, mejor les iría el negocio, abrieron la página web SourceForge en 1999, donde desarrolladores podían alojar su código para que todo el mundo lo viese, y llevar una lista de los bugs por solucionar. Eso hizo que encontrar el código y el lugar para contribuir a un proyecto open source se hiciese muchísimo más fácil que en décadas anteriores, pero aún quedaba por solucionar el problema con los variados programas de control de versiones.

En 2005, cuando la empresa que desarrollaba el programa de control de versiones que Linus Torvald usaba, BitKeeper, decidió dejar de dar soporte a la versión gratuita para Linux, el creador del sistema operativo creó otro programa de control de versiones completamente gratuito y libre: Git. Su único problema era que es poco intuitivo por si solo, pero fue parcialmente solucionado en 2008 con el lanzamiento de GitHub, una página web en la que todos los desarrolladores que participan en un proyecto y todos sus usuarios podían colaborar, sugiriendo cambios y llamando la atención de errores, además de poder alojar su código. Otra página web similar, BitBucket, se estrenó el mismo año, pero usando el programa de control de versiones competidor de Git, Mercurial. A día de hoy solo un 1% de los proyectos usan Mercurial, mientras que el 70% usan Git.

Ese mismo año también se abrió StackOverflow, una página web donde los desarrolladores con dudas sobre programación podían preguntar, y recibir respuestas de otros programadores.

Desde entonces, hay cierta unificación en las herramientas que usan la gran mayoría de programadores. Git para llevar un registro de todos los cambios hechos a una base de código, GitHub para colaborar, y StackOverflow para resolver dudas. Contribuir a un producto open source es más fácil que nunca a día de hoy. Tanto compartir tus proyectos como contribuir a los de otra gente es más fácil que nunca hoy, en la era de la información. Esto se ha llevado también fuera del mundo del software. Por ejemplo, ¿se podría considerar open source el compartir la receta de un bizcocho? Los ingredientes necesarios y el procedimiento estarían disponibles de manera gratuita, y con esa información tú puedes reproducirlo todo al pie de la letra, o a lo mejor añadirle algún ingrediente o modificar la manera de hacer algo. Cuando lo saques del horno y lo pruebes, puedes compartir con el resto de entusiastas de la repostería tus aciertos y errores en las modificaciones que has hecho. ¿Eres alérgico al huevo, y has usado un sucedáneo, pero el bizcocho ha quedado demasiado seco? Algún otro usuario, que probablemente se haya visto con el mismo problema, te dirá como lo ha solucionado.

Este beneficio, de no tener que probar todas las soluciones para un problema por tí mismo, es especialmente útil para las empresas que se dedican a desarrollar software orientado a usuarios. Muchas cosas básicas (como puede ser la programación necesaria para que una tienda online capte el código de la tarjeta un comprador de manera segura, y les cobre la cantidad necesaria) están totalmente solucionadas ya por la comunidad open source, y debido a que miles de personas han tenido la oportunidad de examinar el código, haciendo que éste sea altamente efectivo. Otra analogía a esto sería construir una casa. Necesitas ladrillos para ello, pero si ya existe la posibilidad de comprarlos ya cocidos en lugar de tener que buscar la arcilla, fabricar un molde, y alimentar un horno, es obvio la opción que vas a escoger. Todo el tiempo que los desarrolladores hubiesen tenido que emplear en crear todo ese código, ahora lo pueden usar en desarrollar algo totalmente nuevo.

¿Qué significa OS para mi? Conclusión

Volviendo a mi problema, mientras buscaba soluciones, encontré varias páginas web que ofertaban software de pago que hacían lo que yo necesitaba, pero ninguna de ellas me terminaba de convencer por varias razones. A día de hoy, uno pensaría que algo tan simple como unir dos archivos se puede hacer gratis, ¿verdad? Otra de esas razones era la poca confianza que me inspiraban esos programas, de los que no había oído hablar nunca antes, excepto por una entrada de blog en su misma página web. Cuando instalas algo en tu ordenador, estás depositando tu confianza en sus desarrolladores, lo cual es muy difícil si no tienes ni la menor idea de quiénes son.

Mientras se procesaba la unión de los subtítulos y el vídeo, me puse a seguir investigando sobre software open source. Alguno de los programas que tenía instalados en mi portátil se podían calificar como tal: LibreOffice, una suite de ofimática bastante completa, que uso como alternativa a Microsoft Office Suite, de pago, pero con las mismas características; Visual Studio Code, el editor de texto que estoy usando para aprender a programar; Firefox y Brave, dos navegadores web; Calibre, un programa que uso para cambiar los formatos de archivos para poder leerlos en mi ebook…etc. También apps en mi teléfono, como Telegram, y el propio sistema operativo, Android. Y entonces, caí en que si alguna vez me gustaría tener alguna función que aún no esté presente en cualquiera de estos productos, podría sugerir a la comunidad que lo implementase, o, incluso, ¡hacerlo yo misma! Ya que…¿por qué no? /Adobe, abuso de poder/Para darme cuenta de que podía, tuve que encontrar una encuesta en la que participaron más de 650 desarrolladores en 287 proyectos open-source, en la que el 40% decía ser autodidacta. De esos mismos encuestados, un 58% declaraba trabajar directamente en la industria tecnológica, y de ellos, un 45% como programadores. Si te paras a pensarlo, en un principio resulta un poco chocante. ¿Te pagan por programar, y después llegas a casa y decides seguir haciéndolo…de gratis? No exactamente. El seguir programando por tu cuenta tiene el beneficio de, por supuesto, servir como práctica. Como el código puede ser visto por cualquiera, tienes garantizada la recepción de críticas constructivas y consejos de calidad. También, algunas de estas personas necesitaban funciones extra para uso tanto personal como de trabajo(un claro ejemplo de la frase “si quieres algo bien hecho, hazlo tú mismo”).

Para la mayoría de programadores, la búsqueda de trabajo supone la revisión de un porfolio. A día de hoy, la mayoría de empresas que contratan a programadores consideran la contribución a proyectos open source como algo bastante importante en tu porfolio, ya que les demuestra habilidades programando, trabajando en equipo junto con otros contribuyentes para arreglar fallos e implementar funciones nuevas en un producto ya existente, desde la conceptualización hasta el deployment, además de que estás familiarizado con la comunidad y los productos open source. De igual manera, si una empresa deja que todo el mundo vea su código, es posible que algún desarrollador se interese sobre sus proyectos y decida pedirles trabajo. Para una empresa, el valorar la contribución a proyectos open source como algo positivo garantiza que su equipo de programadores está formado por gente curiosa, a la que le gustan los retos y resolver problemas. Además, si el uso de herramientas open source ya es común en la empresa, es mucho más probable que un programador que esté familiarizado con la comunidad open source sepa algo sobre ellas. El framework AngularJS, basado en el lenguaje Javascript, es comúnmente utilizado para elaborar aplicaciones web(se han hecho más de 150.000 preguntas sobre él e StackOverflow), open source, y está mantenido por nada más y nada menos que Google. Lo cuál puede que nos haga preguntaros: ¿por qué una empresa libera su código, cuando podría venderlo y ganar dinero?

Algunas empresas, como RedHat, ofrecen su sistema operativo del mismo nombre de manera gratuita, pero no la “atención al cliente”. Si alguna clase de empresa u organización quiere tener siempre disponible, con la mayor brevedad posible, a un equipo de expertos que busque soluciones para sus necesidades y soluciones a sus problemas, tienen que pagar por ello. Según la lista de clientes de Red Hat en 2016, un 90% de las empresas Fortune 500 han decidido optar por este modelo.

Otras, cuyo sector no es necesariamente la tecnología, pero hacen un uso extensivo de ella, se pueden permitir hacer público el código de las herramientas que crean sus ingenieros, como AirBNB. La empresa de alquileres vacacionales ha decidido liberar muchas de las herramientas creadas por ellos mismos, ya que eso no afecta a su actividad, y ayuda a otras personas que puedan necesitar esas herramientas, lo que les da una buena reputación.

El OS también es usado extensivamente por organizaciones que no buscan beneficios monetarios. La Junta de Andalucía lleva años fomentando el software libre como medio de alfabetización digital, como es recogido en el Decreto 72/2003. Para ello han impulsado el desarrollo de su propia distribución del sistema operativo libre Linux, llamada Guadalinex, junto con una versión para el entorno empresarial, GECOS, que recibe actualizaciones cada pocos días en su repositorio en GitHub. Otros gobiernos que han adoptado el open source son el francés, el británico y el estadounidense, además de la Unión Europea. A parte de la ya mencionada, hay otras razones por las que los gobiernos deciden recomendar el uso del open source a sus ciudadanos e instituciones públicas, como el ahorro en sus presupuestos, la tranquilidad de poder comprobar por ellos mismos que el software no tiene ningún fallo de seguridad, no depender de los ciclos de actualizaciones de una sola empresa en el caso de necesitar alguna función nueva (y mayor facilidad de usar una versión anterior si llegase a ser necesario), además de dar una imagen de transparencia. 

22 October 2021
close
Tu email

Haciendo clic en “Enviar”, estás de acuerdo con nuestros Términos de Servicio y  Estatutos de Privacidad. Te enviaremos ocasionalmente emails relacionados con tu cuenta.

close thanks-icon
¡Gracias!

Su muestra de ensayo ha sido enviada.

Ordenar ahora

Utilizamos cookies para brindarte la mejor experiencia posible. Al continuar, asumiremos que estás de acuerdo con nuestra política de cookies.