martes, junio 14, 2011

¿Cómo usa Google Python?

martes, junio 14, 2011 por Martín

No recuerdo ahora muy bien cuál fue el twit que me llevó a los vídeos de las sesiones del Google IO 2011. El caso es que me puse a ojearlas, y un poco decepcionante porque casi todas eran de Android y Google App Engine, dos temas que no toco. Otros años había algo más sobre arquitectura, escalabilidad y todo eso. Pero bueno, el caso es que di con una de Wesley Chun y Guido Van Rossum que era Python@Google, y ahí me picó la curiosidad para ver que contaban.

Mi experiencia con Python es prácticamente inexistente, salvo unos meses trabajando con Jython para automatizar el despliegue de clusters de servidores de BEA WebLogic, allá por el 2007 ya. Supongo que muchos conocéis el lenguaje. Otros quizás no. Es un lenguaje interpretado, dinámico, orientado a objetos, y que a menudo se asocia con scripting pero que va mucho más allá. Puedes hacer cualquier tipo de aplicación en Python. Lo creó Guido Van Rossum mientras buscaba algo más sencillo para automatizar el despliegue de sistemas de lo que permitía C, ya que éste último no era nada amigable para los administradores. Su nombre viene de la afición de Guido por los Monty Python, y quizás lo que más atención llame (al menos a mi me lo llamó) a la hora de usarlo es el hecho de que no hay llaves, sino que los bloque se marcan por indentación, algo a lo que cuesta acostumbrarse.

Como cuentan en la charla, el lenguaje subió en popularidad enormemente hace unos años cuando Google lo hizo el primer lenguaje soportado por Google App Engine. En esos momentos mucha gente supo que existía. Pero el lenguaje en sí es ya muy veterano, y en Febrero cumplió nada más y nada menos que 20 años. Otras curiosidades que indican un aumento de popularidad es que es el tercer término más buscado en las búsquedas de libros de programación, se mantiene entre el #6 y #7 del índice TIOBE y que es el único lenguaje que ha ganado el título de lenguaje de programación del año, también de TIOBE, en dos ocasiones. La comunidad es bastante abierta y amigable, y hay muchísimos frameworks. En el 2005 se bromeaba con que Python era el único lenguaje con más frameworks web que palabras reservadas.

¿Quién usa Python?

En la charla ponen algunos casos de uso interesante. Como nombes de empresas salen muchos del sector de la animación como Dreamworks, Pixar, Lucas o Disney. Organizaciones como la NSA o la NSA, distribuciones como Ubuntu o RedHat, VMWare, Netflix, Zillow, en fin como era de esperar pues mucha gente. Wesley Chun, comenta en la charla casos más concretos e interesantes como el de Yahoo Mail, que hace 14 años se presentaba su primera versión complétamente hecho en Python, bueno casi, eran 2/3 Python y un backend en C++. Lo construyeron un equipo de 10 personas en seis meses y esa primera versión se llamaba RocketMail (término que Yahoo intentó relanzar hace unos años). Wesley da también otros ejemplos de compañías en las que ha estado y de casos de uso como el desarollo de juegos para Facebook en Siine, software médico para análisis de enfermedades de médula espinal o software embebido en hardware de Cisco para rechazar spam.

Por cierto que otra curiosidad que sale en la charla es la de como hicieron el libro Python Web Development with Django. 3 autores, que nunca se vieron, escribieron el libro en texto plano (Markdown) y utilizaron Python para compilar el libro txto del libro, enchufarle el código fuente, ejecutar unit tests sobre el código y finalmente generar el html/pdf.

¿Cómo usa Google Python?

Pero al grano. ¿Cómo usa Google Python? Pues el caso es que parece que ya lo utilizaban antes incluso de existir, y en Python estaba hecha parte de la tesis que originó Google. Hoy por hoy, Python es uno de los lenguajes reconocidos oficialmente para uso interno de Google, es decir que los desarrolladores tienen permitido utilizar. Hoy por hoy, Python es un proyecto esponsorizado por Google, y la realidad es que muchos committers y miembros de la comunidad son empleados de Google.

Los proyectos más destacados en Google que utilizan Python son Google Code, Google App Engine, Protobufs, el formato de intercambio de datos de Google, y el caso de éxito más notable: YouTube. YouTube ya utilizaba Python antes de ser adquirido por Google. Es el ejemplo más grande de uso de Google. En los inicios usaban Apache + mod_python + MySQL, y poco a poco fueron encontrando problemas de escalado. En la mayor parte de las veces esos problemas se solucionaban eliminando el código de Python y cambiándolo por rutinas en C. Aquí hay unas transparencias en los que se entra más en detalle en la escalabilidad de YouTube y Python.

¿Más sitios donde se usa Python? Parece que en la parte de testing y QA, en el sistema de build original de Google, en la herramienta de revisión de código, SWIG, y un montón de aplicaciones propias de Google y escritas en Python que corren sobre Google App Engine.

Ya para terminar con este resumen de la charla. Parece que la comunidad anda un poco enfadadilla por el hecho de que Python 3.0 no es completamente compatible con Python 2.x. En particular hay pequeños cambios pero que sin embargo afectan a la mayor parte de aplicaciones, como el hecho de pasar de print 'Hola Mundo' a print('Hola Mundo'), algo que ha generado bastantes críticas.

Un punto un poquillo tenso, dentro de la enorme jovialidad y cordialidad de la charla, es cuando uno de los asistentes (¡Troll!) le pregunta a Guido van Rossum que si Python es tan genial por qué en Google han escogido Java para plataformas como Android. Tras un "¿esa pregunta es en serio?". Guido contestó con un a veces se escoge el lenguaje donde es más fácil encontrar talento. Yo añadiría el que si creas un producto enfocado a desarolladores, apuntas al lenguaje con más desarolladores. Sea un lenguaje mejor o peor, es más una elección de negocio que otra cosa.

Y eso es todo. ¿Os lo sabíais ya todo u os han sorprendido cosas como a mi?

comments

0 Respuestas a "¿Cómo usa Google Python?"