martes, 12 de mayo de 2009

La revolución del open source

"La estructura de las revoluciones científicas" (Thomas S. Khun, 1962) es un libro sobre historia y filosofía de la ciencia. En él se explica cómo la evolución de las ciencias se produce en forma de revoluciones que suceden a crisis profundas en un campo científico, obteniendo como resultado una nueva visión y entendimiento de dicho campo.

Su lectura me la recomendó Robin, y por ello llegó a mis manos, para aprender a situarse frente al continuo cambio que se experimenta en el mundo laboral, estableciendo un paralelismo con los cambios producidos en la ciencia a lo largo de su historia.

Uno de los puntos que encontré más interesante fue el hecho de que las revoluciones no se dan en un único punto geográfico (país, universidad o centro de estudios) sino que suceden de manera paralela en varios de los lugares donde se estudia el campo científico afectado.

Conversando acerca de esto con mi compañero Mario, descubrí un fenómeno similar en lo que se refiere a las diferentes plataformas open source que he ido utilizando a lo largo de mi carrera profesional:

Zunibal, año 1998: por aquel tiempo me encontraba desarrollando sencillas aplicaciones web en lenguaje C, lo que llamábamos "cegeis". El desarrollo y depuración era un proceso lento y engorroso. Programar sobre emacs; compilar con gcc; ftp al directorio cgi-bin del servidor apache; probar con Netscape; internal server error. Vuelta a empezar. Y qué decir de la integración de código HTML. Otra odisea. Pero aquel año se publicó PHP 3, la primera versión del popular lenguaje de programación open source (aunque se trate de la versión número 3 las anteriores no eran un lenguaje propiamente dicho) . PHP llegó para reducir la complejidad y los tiempos de desarrollo y para facilitar la separación del código de la parte visual, lo que además contribuyó a que los diseñadores entrasen de lleno al mundo internet.

K 2000, año 2002: sitios webs dinámicos, gestores de contenidos, e-commerce... En definitiva, bases de datos puestas en la web donde un administrador sin conocimientos técnicos accedía a una dirección privada y ejecutaba altas, bajas, modificaciones y consultas. Podían ser proveedores, clientes, zapatillas, artículos de subastas,... El proceso siempre era el mismo. Modelar la base de datos, crearla en mysql y adaptar unos cuantos scripts que realizaban las mencionadas operaciones pero sobre la nueva base de datos. Así proyecto tras proyecto. En aquella época otros desarrolladores como yo, atrapados en el día de la marmota, diseñaban y desarrollaban los primeros frameworks open source orientados a resolver este atasco: Ruby on Rails, Zend, Cake... Por desgracia yo tardé algún tiempo más en subirme a esta revolución. Parte de culpa la tiene mi amigo Alex, evangelizador de la filosofía open source, a quien le consulté sobre este problema y no pudo abrirme los ojos en aquella oportunidad. No fue hasta tiempo después que comencé mis primeros desarrollos sobre Cake.

Chilevision, año 2008: después de situar nuestro sitio web entre los más visitados de Chile alcanzando el millón de visitantes únicos mensuales, era el momento de desarrollar nuevos productos para seguir creciendo. Ese mismo año Facebook se masificaba en Chile por lo que tomamos la opción de desarrollar nuestra propia red social. El resultado vio la luz al final del primer trimestre de 2009 bajo el nombre de miTiu.com. La plataforma open source utilizada fue Elgg, coincidiendo con su versión 1.5, optimizada ya para un tráfico elevado. El tiempo de puesta online fue mínimo, tan solo el necesario para integrar el diseño, desarrollar un par de funcionalidades no incluidas y configurar el hosting sobre Amazon Web Services. Ahora es turno de captar usuarios y decidir qué nuevas características queremos integrar en la plataforma.

Esta contemporaneidad que se ha dado entre los proyectos en los que he trabajado y el desarrollo de las plataformas open source con las que he ido desarrollándolos valida el trabajo que he realizado. Además esta conclusión que saco mirando hacia atrás en el tiempo se puede aplicar hacia el futuro, como una regla de validación de nuevos proyectos: ¿qué hay en el mundo open source que esté relacionado con el nuevo proyecto que voy a abordar?

Y hablando de futuro, en cuanto vuelva a Chile tengo que revisar la última recomendación de Alex: Drupal + CCK.