Inicialmente cualquier programa o parte de el al menos nace como Software Libre, justo en el momento de la redistribución de ese programa es donde se convierte en privativo o no, si un programa se libera en la modalidad de Software Libre y se redistribuye con una licencia que garantice todas las libertades sobre no garantiza en ningún modo que dicho programa sea un éxito comercial, que sea un programa popular o que sea un programa de uso masivo.
Si existen más de 100 mil aplicaciones de Software Libre en sitios como sourceforge.net, googlecode, github entonces por que siempre terminamos usando unas mil aplicaciones?, siendo que 1000 aplicaciones es lo que tienen aproximadamente una instalación estándar y funcional de GNU/Linux, es decir más o menos el 1% de esas 100000.
Entonces por que existen tantas? Bueno así es el Software Libre en donde hay variedad, cada quien considera que su aplicación satisface sus propias necesidades y cuando esas necesidades son un común, bingo! tenemos una aplicación exitosa. Se podrían considerar esas 1000 aplicaciones las ganadoras del proceso evolutivo de selección natural del Software Libre, son aquellas aplicaciones que tienen como características:
- Fueron creadas en un momento crucial para resolver una necesidad de mucha gente por lo cual su adopción fue masiva e inmediata.
- Su código fuente fue muy legible, sencillo, bien documentado y facilito que muchos otros desarrolladores se sumaran a contribuir al proyecto.
- Usaron algún lenguaje de programación popular con lo cual la captación de colaboradores fue sencilla.
- Fueron aplicaciones sencillas que resolvieron un problema especifico, cumpliendo la filosofía unix de hacer sistemas complejos a partir de pequeñas piezas no necesariamente del mismo proyecto ( reusar código).
- Tuvieron arquitecturas robustas, bien sea por que fueron bien planificadas desde el principio o por mera coincidencia.
- Tuvieron excelente documentación.
- Fueron basadas en estándares lo que garantizo la interoperabilidad con otras aplicaciones.
Y es que siempre la parte más difícil de hacer un programa y liberarlo es hacer que sea legible por otros y documentarlo bien para que a cualquiera le sea sencillo usarlo, gran parte del éxito de una aplicación viene dado por estos factores y cualquier aplicación que no siga estos puntos esta tendiendo a morir o a agonizar durante mucho tiempo.
Basadas en las características de arriba voy a dar algunos ejemplos de proyectos de Software Libre exitosos, sin un orden especifico:
- El kernel Linux, fue un proyecto que nació en un momento particular en donde no existía ningún kernel GNU funcional ( existía hurd pero no era funcional ), su arquitectura permitió que mucha gente contribuyera, ya el momento del kernel pasó si quisieras hacer uno posiblemente no tendría el mismo impacto.
- El framework para desarrollo php Symfony, este framework nació en el momento en que los frameworks para php estaban naciendo y se popularizo por encima de otros debido a su excelente documentación y al esfuerzo de su comunidad en documentar todo lo posible ( mayor comunidad, mayor documentación).
- WordPress, el popular motor de blogs, está hecho en php, pese a que existen posiblemente lenguajes de programación más eficientes, rápidos y seguros, es hoy en día referencia tal vez debido a su sencillez, al haber usado un lenguaje de programación, muy popular y que es una pieza de Software modular lo que permite que cualquiera pueda hacer plugins y redistribuirlos de forma sencilla.
- El navegador web Firefox, nació a partir de netscape que era de software privativo en un momento donde no habían buenas alternativas libres de navegador, era bastante robusto en el momento de nacer.
- El escritorio Gnome, este nació como alternativa completamente libre para GNU/Linux en un momento donde kde no tenía bien definido el modelo de licenciamiento de sus librerías qt en el cual se basaba, fue hecho con las librerías gtk provistas por el proyecto Gimp, la principal característica de este escritorio es el de proveer una interfase completamente simple al usuario.\
Fuente del gráfico: http://www.digibarn.com/collections/posters/tongues/
Conoces algún ejemplo más? quieres aportar alguna opinión a este post? hazlo en los comentarios.