Ventajas del software libre
From Software libre para los países en desarrollo
El software libre posee varias ventajas intrínsecas que le permiten competir con el software propietario. Veamos cuáles son.
Contents |
La metodología de desarrollo: diferencia fundamental, resultados superiores
La mayor parte de las ventajas del software libre proceden directamente de su modalidad de desarrollo, estudiada y descrita en detalle en el libro The cathedral and the bazaar. En su libro, Eric Raymond compara el modelo de desarrollo del software libre a los bazares (donde el intercambio de bienes es abierto y público), mientras que el modelo de desarrollo propietario es análogo a la catedral (donde el flujo del conocimiento y los bienes es piramidal, comenzando desde arriba hacia abajo).
Linus Torvalds's style of development—release early and often, delegate everything you can, be open to the point of promiscuity—came as a surprise. No quiet, reverent cathedral-building here—rather, the Linux community seemed to resemble a great babbling bazaar of differing agendas and approaches (aptly symbolized by the Linux archive sites, who'd take submissions from anyone) out of which a coherent and stable system could seemingly emerge only by a succession of miracles.
The fact that this bazaar style seemed to work, and work well, came as a distinct shock. As I learned my way around, I worked hard not just at individual projects, but also at trying to understand why the Linux world not only didn't fly apart in confusion but seemed to go from strength to strength at a speed barely imaginable to cathedral-builders.
Según ESR, los principios fundamentales (las "lecciones") del desarrollo "estilo bazar" son:
- Todo buen trabajo de software comienza por solucionar una necesidad personal de un desarrollador.
- Los buenos programadores saben qué programar. Los excelentes, qué reescribir o reusar.
- "Planifica deshacerte de un prototipo; de todas maneras lo harás" (citado del famosísimo libro de Fred Brooks, The Mythical Man-Month)
- Si tienes la actitud correcta, los problemas interesantes te encontrarán.
- Cuando pierdes interés en un proyecto tuyo, tu deber final es dárselo a un sucesor competente.
- Tratar como co-desarrolladores a tus usuarios es la ruta menos problemática para mejorar y depurar rápidamente el código.
- Publica temprano. Publica frecuentemente. Y escucha a tus clientes.
- Dada una base suficientemente grande de beta-testers y co-desarrolladores, casi cualquier problema será caracterizado rápidamente, y su arreglo será obvio para alguno.
- Estructuras de datos inteligentes y código tonto dan mejores resultados que lo opuesto.
- Si tratas a tus beta-testers como si fueran tu recurso más valioso, ellos responderán convirtiéndose en tu recurso más valioso.
- La segunda mejor cosa, después de tener buenas ideas, es tener la habilidad de reconocer buenas ideas de tus usuarios. A veces, lo último es mejor.
- Frecuentemente, las soluciones más innovadoras y estupefacientes vienen de percatarte de que tu concepto del problema estaba errado.
- "La perfección (en el diseño) se alcanza no cuando ya no hay más que añadir, sino cuando ya no hay más que quitar." (cita de Antoine de Saint-Exupéry)
- Toda herramienta debe ser útil si se usa de la forma esperada, pero una herramienta realmente fantástica se presta para usos que nunca podrías haber esperado.
- Cuando escribas software de intercomunicación de cualquier tipo, esfuérzate para no molestar al flujo de datos -- y nunca suprimas información a menos de que el destino de los datos te obligue.
- Cuando tu lenguaje de programación no es Turing-completo, la sintaxis puede ser tu amiga.
- Para resolver un problema interesante, comienza por buscar un problema que te interese.
- Siempre y cuando el coordinador de un proyecto tenga un medio de comunicación al menos tan bueno como la Internet, y sepa guiar sin obligar a nadie, muchas cabezas son inevitablemente mejores que una.
Posteriores autores, así como el mismo Raymond, han hecho reflexiones sobre las condiciones sociales y tecnológicas en las que el modelo bazar florece. La conclusión fundamental de estas reflexiones es que, para que el modelo bazar florezca, deben haber procesos abiertos y transparentes (casi siempre apoyados por la tecnología subyacente) junto con tecnología de telecomunicaciones que habilite esta transparencia. Si bien es cierto que la tecnología también potencia la capacidad de desarrollo en el modelo catedral, esta misma tecnología, en manos de usuarios y desarrolladores "bazar" tiene efectos multiplicadores mucho más poderosos.
El resto de esta sección cita, separadamente, a varios autores.
Las ventajas competitivas del software libre
En su documento The Competitive Advantages of Free Software, Alexandre Oliva hace un estudio del software libre basándose en una analogía con formas de vida orgánicas. El abstracto reza:
This article proposes an analogy between organic life forms and software packages. It uses Charles Darwin's arguments of natural selection, such as increased variability and ease of reproduction, to support the claim that Free Software enjoys important competitive advantages over proprietary software. The Competitive Advantages of Free Software
Sin entrar en detalles (puesto que no es nuestra misión) Alexandre cita:
- La ventaja de la variabilidad: el software libre, por la naturaleza de su licencia, es mucho más adaptable. Mientras que en el software propietario las adaptaciones están limitadas a las que el fabricante desee o considere oportunas, las adaptaciones de un software libre están limitadas sólo por la capacidad de los desarrolladores que lo tomen a cargo. Indudablemente, el software libre no se escapa a los costos de desarrollo para adaptaciones. Sin embargo, este factor no va en desmedro de la adaptabilidad del software libre.
- La ventaja reproductiva: puesto que el software libre puede ser combinado, modificado y alterado a discreción del usuario, es posible obtener variantes infinitas, tanto en características como en funcionalidad. El software propietario, en la mayor parte de los casos, está limitado en sus variantes a lo que sus fabricantes consideren necesario, conveniente, o comercializable. Como corolario, eventualmente, dado cualquier nicho, el software libre tenderá a dominarlo.
Alexandre hace uso de estas analogías para explicar por qué, una vez que determinado software libre coloniza un nicho específico, tiende a convertirse en la alternativa dominante (lo cual explicaría las situaciones actuales de Apache, SAMBA y Sendmail).
Números: ventajas cuantitativas
Los números importan. E importan aún más en el campo del software y de la tecnología de información, porque usualmente apuntan a grandes ventajas tanto incorporadas en el software como derivadas de efectos de red positivos.
David A. Wheeler realizó un estudio detallado del software libre. Su estudio, titulado Why Open Source Software / Free Software (OSS/FS, FLOSS, or FOSS)? Look at the Numbers!, provee datos cuantitativos que demuestran que, en muchos casos, usar software libre es razonable o incluso superior a usar productos propietarios de la competencia. Su paper hace énfasis en medidas cuantitativas para, justamente, evitar la tendencia de quienes favorecen software propietario a categorizar como anecdóticas (con la intención de desmentir) las ventajas del software libre.
Sin entrar en detalles, Wheeler dice:
- Tajada de mercado: Apache es número 1 en servidores Web. GNU/Linux es número 2 en servidores públicos de Internet, y número 1 en un estudio de sitios primariamente educativos en Europa. GNU/Linux fue el OS para servidores más vendido en 1999, 2000 y 2001 (con otros estudios que confirman esta tendencia).
- Confiabilidad: Las aplicaciones de software libre son más confiables que sus contrapartes propietarias. El núcleo Linux es altamente confiable, más que Windows NT. El subsistema TCP/IP en Linux es el subsistema con menos defectos de todos los sistemas operativos estudiados. MySQL es la base de datos con menos defectos de todas las DBs estudiadas.
- Rendimiento: El servidor de archivos SAMBA (Windows file and printer sharing) combinado con Linux es superior a Microsoft Windows 2000. Apache + Linux es más rápido y económico que Windows + IIS.
- Escalabilidad: GNU/Linux es la plataforma dominante en aplicaciones de supercomputación.
- Seguridad: los "seguros contra hackers" de J.S. Wurzler Underwriting Managers son de 5% a 15% más caros si se aseguran servicios o equipos Microsoft. La mayor parte de sitios Web hackeados ejecutan Windows + IIS. Linux sin actualizaciones resiste por más tiempo los ataques que Windows sin actualizaciones.
Estos asertos conforman una pequeña porción de los asertos en el paper de Wheeler, notando que cada uno de los cuales fue tomado de un estudio serio. Wheeler también colecciona estudios que verifican los menores costos total de operación (TCO) y el costo de adquisición (COA) de soluciones basadas en software libre versus soluciones propietarias.
¿Es, realmente, mejor el software libre?
Just as the chef in an open air kitchen knows that his cooking will be viewed by all his restaurant patrons, an open source developer is fully aware that his code will be scrutinized by others. It will be subject to constant QA by developers, users and analysis tools such as Coverity. This clearly results in higher quality software. Perhaps even more powerful though, is the capacity of a passionate open source community to deliver astounding results when their work has been questioned [...] It's unlike anything that I've seen in more than 20 years in the commercial enterprise. Open Scrutiny of Open Source Code
En español:
Como un chef de cocina abierta, cuyo trabajo es visto por todos los visitantes del restaurante, un desarrollador de código abierto está consciente de que su código será inspeccionado por otros. Será sujeto de análisis de calidad constante por desarrolladores, usuarios y herramientas de análisis como Coverity. Esto claramente resulta en software de mejor calidad. Tal vez aún más poderosa, sin embargo, es la capacidad de una comunidad de código abierto apasinada para entregar resultados asombrosos cuando su trabajo se ve cuestionado. [...] No se compara con nada de lo que he visto durante los últimos veinte años en las empresas comerciales.
Ken Sims racionaliza de esta manera, en la cita anterior, la razón por la que el software libre continuamente iguala y supera las expectativas de calidad generales en la disciplina del desarrollo de software. El modelo de desarrollo abierto y transparente se presta para que se den resultados concretos. En la medida en que este modelo de desarrollo se siga perpetuando, es de esperarse que los resultados sigan mejorando.
"Mejor" = Calidad
Si hemos de resumir "mejor" en un sólo término, lo haremos usando la palabra calidad.
Dado un proyecto de software libre puntual cualquiera, y un producto propietario equivalente, y una base suficientemente grande de usuarios, será mucho más probable que el proyecto de software libre entrege resultados de mejor calidad.
Este aserto es puesto a prueba continuamente, y se revalida públicamente con el pasar del tiempo a través de artículos como Coverity Study Ranks LAMP Code Quality, Linux Code Grows as Defects Decline, Defect assessment study demonstrates superiority of Linux TCP/IP stack y MySQL Hard on Defects.
No vemos razón para que esta tendencia cambie en un futuro a mediano plazo.
La ventaja del código fuente
Ya lo hemos dicho: el código fuente es una receta, escrita de forma que las personas puedan entender, que sirve para hacer el programa que el computador puede entender.
Tener el código fuente es prácticamente invaluable, y garantiza que el software sea perpetuo. ¿Por qué? Porque, con el pasar de los años, los sistemas operativos en los cuales el software funciona van cambiando, y ese cambio genera incompatibilidades que no pueden solucionarse sólo con el programa ejecutable; si uno tiene el código fuente, uno sí puede solucionar las incompatibilidades y hacer que una versión antigua de un programa continúe funcionando correctamente.
Además, la compartición del código fuente (expresamente habilitada por las licencias de software libre) permite que los desarrolladores de software libre mejoren sus programas, incorporando esfuerzos de terceras personas en sus programas. Estas mejoras son redistribuidas (eventual o inmediatamente) a todos los usuarios, lo que resulta en mejores resultados para ellos.
Una perspectiva anecdótica y práctica
Dejemos por un momento de lado el análisis frío y generalizado; escuchemos lo que la gente está diciendo con respecto a la particular combinación de software libre que se distribuye bajo el nombre de Ubuntu (una distribución de Linux explosivamente popular, cuyo espíritu es ejemplar del software libre). Esta es una transliteración al español del contenido del sitio anteriormente citado, que resume los comentarios de la gente con respecto a Ubuntu (y Linux en general):
- Seguridad:
- Financiero (menor costo total de propiedad):
- Gratis gratis gratis
- Sistema operativo gratis
- Actualizaciones gratis
- Software gratis
- Códecs gratis
- ...y legalmente libre (evidentemente "gratis" no es un problema para la gente que "roba" Windows u otros programas, pero al menos es una forma legítima de gratis
- Menores requerimientos de hardware:
- Los sistemas viejos que se arrastran con Windows, funcionan tranquilamente con Linux
- No es necesario comprar actualizaciones nuevas de hardware caro con la FRECUENCIA con la que los usuarios de Windows tienen que hacerlo.
- Gratis gratis gratis
- Rendimiento:
- El rendimiento multitarea es excelente -- es insuperable (otra vez, incluso con hardware más antiguo)
- Estabilidad -- Linux raramente si acaso se cae. Puede dejárselo funcionar por semanas, meses, años sin ningún impacto en el rendimiento (no hay fugas de memoria etc.)
- Sistema avanzado de gestión de memoria -- permite cálculos intensivos en términos de memoria que ahogarían a una PC Windows normal
- Experiencia del usuario:
- Personalización del escritorio
- Gnome [sic] y KDE, por ejemplo, proveen herramientas mucho más grandes para customizar completamente el look and feel y la experiencia del escritorio
- Facilidad de uso:
- Esto podría parecer muy contrario a la sabiduría popular, pero la mayor cantidad de dificultades en aprender cómo navegar y hacer cosas resultan de años de precondicionamiento Windows o Mac. Una vez que uno capta el aire general de las cosas, Linux es muy intuitivo y fácil (tanto línea de comando como entornos gráficos)
- Mantenimiento:
- Actualizaciones (especialmente con Ubuntu) son una bicoca, y puedes trabajar productivamente mientras éstas ocurren sin ningún impacto en el rendimiento del sistema
- Sin molestias por licencias
- Acceso simple a miles de aplicaciones útiles y gratis a través de los gestores de paquetes apt-get o synaptic
- Habilidad para conectarse vía SSH al equipo y hacer prácticamente cualquier cosa
- Libertad para escoger. Escoger entre:
- Distribución
- Entorno de escritorio
- Suite de oficina
- Navegador Web, cliente de correo, lector de noticias RSS, reproductor de medios, etc. etc. etc.
- Personalización del escritorio
- Programación
- LAMP - fácilmente configurar servidores y bases de datos (Apache, MySQL, PHP) que agilitan el desarrollo y las pruebas de aplicaciones web
- Compilador de C extremadamente disponible/accesible
- Soporte de hardware
- Existe una cantidad terrible de desinformación alrededor de este tópico. Linux tiene controladores para y soporta más hardware y periféricos que cualquier otro sistema operativo; y largamente.
- Evidentemente, algunas veces hay que esperar un poco para que la comunidad de OSS escriba controladores para los tipos de periféricos o hardware más nuevos (especialmente si el fabricante no entrega controladores a la comunidad OSS), pero es mayormente una cuestión de esperar un poco.
- Profesional:
- Algunos simplemente usan Linux porque perciben que les entrega valor de marketing extra en su profesión (administrador de sistemas, migración de bases de datos o aplicaciones)
- Razones "suaves" (intangibles, filosóficas):
- Para sentirse parte de un movimiento grass-roots
- Interés genuino en computadoras (cómo funcionan, como programarlas, etc.) - llaménlo un hobby o lo que desees, pero este es el mismo interés que inició la explosión de las PCs
- Credibilidad geek (algunas personas se tatúan para demostrar que son cool, yo uso Linux ... por cierto - entiendo que la intersección de usuarios Linux que usan tatuajes es extremadamente cool
- Es interesante probar algo nuevo y diferente
- Hay quienes piensan que el acceso a la información y el control sobre la experiencia de usuario propia deben ser libres y controlados por el usuario. Muchos sienten como que Windows trata de forzar al usuario a hacer las cosas "de la forma Windows", bajo sus propios términos.

