Loading...

LA PARADOJA DE PYTHON

Original

Agosto 2004

En una charla reciente, dije algo que molestó a mucha gente: que podrías conseguir programadores más inteligentes para trabajar en un proyecto de Python que en un proyecto de Java.

No quise decir con esto que los programadores de Java son tontos. Quise decir que los programadores de Python son inteligentes. Es mucho trabajo aprender un nuevo lenguaje de programación. Y la gente no aprende Python porque les conseguirá un trabajo; lo aprenden porque les gusta programar de verdad y no están satisfechos con los lenguajes que ya conocen.

Lo que los convierte exactamente en el tipo de programadores que las empresas deberían querer contratar. De ahí lo que, por falta de un mejor nombre, llamaré la paradoja de Python: si una empresa elige escribir su software en un lenguaje comparativamente esotérico, podrá contratar a mejores programadores, porque atraerá solo a aquellos que se preocuparon lo suficiente como para aprenderlo. Y para los programadores, la paradoja es aún más pronunciada: el lenguaje a aprender, si quieres conseguir un buen trabajo, es un lenguaje que la gente no aprende simplemente para conseguir un trabajo.

Solo unas pocas empresas han sido lo suficientemente inteligentes como para darse cuenta de esto hasta ahora. Pero también hay una especie de selección en marcha aquí: son exactamente las empresas para las que los programadores más querrían trabajar. Google, por ejemplo. Cuando anuncian puestos de programación en Java, también quieren experiencia en Python.

Un amigo mío que conoce casi todos los lenguajes ampliamente utilizados usa Python para la mayoría de sus proyectos. Dice que la razón principal es que le gusta la forma en que se ve el código fuente. Esto puede parecer una razón frívola para elegir un lenguaje sobre otro. Pero no es tan frívolo como parece: cuando programas, pasas más tiempo leyendo código que escribiéndolo. Empujas bloques de código fuente de la misma manera que un escultor lo hace con bloques de arcilla. Así que un lenguaje que hace que el código fuente se vea feo es enloquecedor para un programador exigente, como lo sería una arcilla llena de bultos para un escultor.

Al mencionar el código fuente feo, la gente pensará, por supuesto, en Perl. Pero la fealdad superficial de Perl no es el tipo de fealdad a la que me refiero. La verdadera fealdad no es una sintaxis áspera, sino tener que construir programas a partir de los conceptos equivocados. Perl puede parecer un personaje de dibujos animados maldiciendo, pero hay casos en los que supera a Python conceptualmente.

Por ahora, de todos modos. Ambos lenguajes, por supuesto, son objetivos móviles. Pero comparten, junto con Ruby (e Icon, y Joy, y J, y Lisp, y Smalltalk) el hecho de que son creados y utilizados por personas que realmente se preocupan por la programación. Y esos suelen ser los que lo hacen bien.