8 de septiembre de 2008

¿El software libre destruye puestos de trabajo? ¡Ojala!

Eran mas comunes hace algunos años, pero creo que todos nos hemos encontrado en algún foro de Internet la siguiente diatriba:

- Soy programador, y me parece increíble que haya otros programadores que apoyen esta mierda del software libre. Yo trabajo en productos "propietarios", y si nuestros clientes pudieran descargarse programas equivalentes al nuestro totalmente gratis, toda mi empresa se iría a la mierda y yo no tendría donde trabajar. Todos estos hijos de papa que se dedican a programar cosas gratis son una amenaza para todos los informáticos, y si fueran un poco mas maduros verían como el software libre es una amenaza. Cuando tengáis que pagar una hipoteca, el coche y el colegio de unos hijos os daréis cuenta del daño que estáis haciendo. Trabajar gratis para que las empresas se aprovechen de lo que haces es de idiotas. Meteos el software libre por el culo.

Naturalmente, este sujeto tiene una visión del mundo y de la economía muy cateta. Aun sin entrar a discutir si es cierto que el software libre trae paro o no, veamoslo desde otro punto de vista: el de su jefe.

-Jefe: A ver, Manolo, ven a mi despacho. Un cliente me ha pedido X. ¿Cuanto tiempo estimas que tardaríais tu y tu equipo en hacerlo?

-Manolo: Buf....implementar eso afecta a los ajustes de la cache de la trocola con los forlayos y la decantacion de filostros...unos 6 meses, calculo.

-Seguro que estas añadiendo un mes de mas cabrón, pero bueno....por cierto, he leído en una revista "Ejecutivos guapos, ricos y exitosos" algo sobre el software libre...por lo visto es gratis, ¿has pensado en usarlo en el proyecto para terminar antes?

-¡No me mencione a esa gentuza! Si, hay programas gratis que podríamos usar casi inmediatamente, lo que tardamos en hacer las pruebas, pero esos hippis tan solo quiere acabar con empresas comerciales como nosotros y hacer que todo el software sea regalado...¡podría despedirme a mi y a la mitad del equipo! Creo que no debemos hacerles caso, nos hacen daño y no es mas que una moda que pasara dentro de un tiempo...¿por que se ríe?

-Jejeje...jejeje....de una cosa muy graciosa que me ha dicho mi hija hoy...jejeje...¿podrías pasarte el viernes por aquí, para...llamemoslo "revisar" tu contrato?

-Claro, ya era hora de que me mejoraras las condiciones de trabajo...

-Si, jejeje....mejorar....jejeje....venga, ya puedes irte campeón...

Efectivamente, señores: Si el software libre destruye puestos de trabajo de programadores por hacerlos redundantes, sera mas aceptado en las empresas porque se ahorraran esos sueldos. Bienvenidos al mundo real, señores fanáticos del software propietario. Si lo hace o no es otra cuestión, pero en todo caso ¡ojala lo hiciera! Desde un punto de vista económico, seria algo muy beneficioso: Al necesitar -repito, hipotéticamente- menos programadores se reducirían los costes, al reutilizar código quizás se reducirían algo los tiempos de desarrollo (que se lo digan a Google Chrome) y por tanto aun mas los costes...no se confundan: económicamente seria algo beneficioso.

Quizás los programadores que lean esto apliquen una vision Ramonciniana al problema, y piensen: ¿y que pasa con los programadores? ¿Se deberia establecer un Canon al software libre para repartir entre los programadores hipoteticamente dañados? Pues no. El catetismo economico de Manolo le impide ver que el dinero que -insisto, hipoteticamente- se deja de gastar gracias al software libre podria reutilizarse para crear aun mas software que antes no era posible, es decir, para que la industria del software avanzara mas rapido con el mismo coste. Y si no se gasta en eso, se gastaria en otras partes del presupuesto de la empresa que, minusculamente, harian crecer la demanda de otros sectores y generarian empleos para los despedidos, o la empresa bajaria los precios para intentar competir...en fin: las consecuencias tipicas del libre mercado y division del trabajo.

2 de septiembre de 2008

Google Chrome y el futuro de la Web

Es sorprendente como un simple e inocente comic puede aclarar en cuestion de pocas horas la incertidumbre sobre los cambios de ruta que la web ha de hacer en su camino evolutivo de los proximos años. Ese comic de Google en el que detalla con precision las bases de su navegador con el sorprendente nombre de "Chrome, y al que piso los talones una nota de prensa anunciando la beta del mismo para hoy, es una bola de cristal que permite adivinar con cierta precision sus intenciones.

El objetivo final de todos, como ya se ha dicho aqui y en todo internet, es basar el modelo de negocio de la mayoria de la industria del software del futuro en la web. Descabellado o no, lo cierto es que en los ultimos años gran parte de las aplicaciones que han facilitado la vida a la gente han sido webs, no aplicaciones, y es en la web donde se esta invirtiendo la mayoria del dinero. Pero hay algunas dificultades que vencer, y una de los mas importantes es que las capacidades de los navegadores actuales son muy limitadas. Para poder construir aplicaciones web que compitan con el escritorio es imprescindible mejorarlos, y tanto Adobe como Microsoft han esprintado a la maxima velocidad para mostrar sus proposiciones al respecto: Adobe Air y Microsoft Silverlight. Pero su objetivo no es tan solo solventar un problema tecnico, sino en crear tecnologias controladas por ellos que les permitan dominar la base sobre la que se desarrollen las decadas de software, y hacerse de oro repitiendo el milagro de Windows en los 90.

Adobe y Microsoft ya han presentado sus cartas, quedaba la incognita de Google, que tiene el suficiente poder como para presentar su propia alternativa, o apoyar una de las dos mencionadas y hacerla ganadora. Sin embargo, tal y como se sospechaba con Google Gears y se ha confirmado en Google Chrome, su intencion es hacer evolucionar los estandares actuales. O, poniendolo en la perspectiva de un post anterior de este blog, van a parchear la deficiente web actual todo lo que sea necesario, en vez de diseñar de cero La Infraestructura Web Perfecta, que ha sido la opcion de Microsoft y Adobe. Aunque hay quien piensa que esta opcion "abierta" es malo para Google, porque da posibilidad a sus competidores de utilizarla en su beneficio mientras que ellos no dan oportunidad a nadie de infiltrarse en sus propias alternativas, lo cierto es que se trata mas bien de lo contrario: Cuanto mas se vea obligado Microsoft a utilizar la web estandar, mayor sera el fracaso de Air y Silverlight (y digo Microsoft porque ellos al menos puede utilizar Silverlight masivamente en sus sitios Live; Adobe sin embargo no tiene nada similar y tendra que convencer a los desarrolladores de otros sitios)

Otro aspecto importante que confirma todo esto es otro de los secretos de Chrome: V8, una VM con soporte de Javascript (Nota: A diferencia de lo anteriormente rumoreado, esta VM no es una VM al estilo de .NET y Java, sino simplemente un compilador de javascript). El objetivo de esta VM y de otros esfuerzos para hacer Javascript mas veloz, como el reciente "TraceMonkey" de Firefox, no es simplemente hacer Javascript "mas rapido", sino competir directamente con el codigo nativo, y no solo por el placer de competir, sino de convertirse en la alternativa a este. Por arte de magia, Javascript esta en vias de convertirse en lo que Microsoft quiere que se convierta C#/.NET, excepto que Javascript tiene mas posibilidades de conseguirlo, por la simple razon de que es el estandar de facto de la web actual. Los propios progresos de IE8 respecto a su implementacion de Javascript disminuyen los incentivos de verse forzado a utilizar Silverlight. Ya solo falta que saquen una implementacion de Javascript basada en la VM de .NET para ponerselo a ellos mismos mas dificil.

En resumen, Google pone con Chrome las cartas sobre la mesa respecto a los fundamentos base de las futuras aplicaciones web. Es algo que no habia hecho hasta la fecha, y por eso se trata de un acontecimiento muy importante. Es posible que con este navegador estemos asistiendo al verdadero nacimiento de la Web 2.0, a sus primeros pasos.

Respecto a los que dicen que dañara a Firefox, discrepo y mucho. En primer lugar, el enemigo de Google es Microsoft, no una organizacion sin animo de lucro. Firefox es tan solo un navegador que permite y seguira permitiendo a millones de usuarios acceder a las aplicaciones web de Google, haciendoles ganar dinero: No tiene sentido intentar hacerles daño. Ademas, Firefox no tiene porque tener miedo: una vez puestas en marcha las aplicaciones web que utilizen las capacidades de navegadores como Chrome, los navegadores que sobreviviran seran los que mejor y mas rapido ejecuten esas aplicaciones, y por el momento Firefox esta entre ellos (Nota: en algunos benchmarks parece que el tracemonkey de firefox es incluso mas rapido que V8).

Por ultimo, hay que mencionar la tremenda importancia del software libre en la viabilidad de este navegador Chrome de Google. Utiliza Webkit, y hay que recordar que Webkit fue un fork de Apple del motor KHTML de KDE. No se equivoquen: Chrome es tambien un exito del software libre, y debemos estar orgullosos de ello.

30 de agosto de 2008

Estilo

Google ha publicado su "guia de estilo" que utilizan internamente sus programadores con C++/ObjC. Curiosamente no han publicado la de Python.

Por cierto, gracias a la transicion de Mozilla a Mercurial, se puede ver via web la lista de cambios que se meten en el repositorio central. Si, tambien hay cosas parecidas en CVS (listas de correo con interfaz web mayormente), pero en esta hasta puedes suscribir via RSS a los cambios. ¿Que mejor manera de perder el tiempo? Por cierto, a ver si a los de mailman les da algun dia por incluir algun parche para generar RSS automaticamente a partir de las listas de correo.