Loading...

LA PARADOJA DE PYTHON

Original

Agosto de 2004

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

No quise decir con esto que los programadores de Java sean tontos, sino que los programadores de Python son inteligentes. Aprender un nuevo lenguaje de programación es mucho trabajo. Y la gente no aprende Python porque les permita conseguir un trabajo, sino porque realmente les gusta programar y no están satisfechos con los lenguajes que ya conocen.

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

Hasta ahora, sólo unas pocas empresas han sido lo suficientemente inteligentes como para darse cuenta de esto. Pero también en este caso se produce una especie de selección: son precisamente las empresas en las que a los programadores les gustaría trabajar más. Google, por ejemplo, cuando anuncian puestos de programación en Java, también buscan experiencia en Python.

Un amigo mío que conoce casi todos los lenguajes de uso generalizado utiliza Python para la mayoría de sus proyectos. Dice que la razón principal es que le gusta el aspecto del código fuente. Puede parecer una razón frívola para elegir un lenguaje en lugar de otro, pero no es tan frívola como parece: cuando se programa, se pasa más tiempo leyendo código que escribiéndolo. Se empujan masas de código fuente de un lado a otro de la misma forma que un escultor empuja masas de arcilla. Por lo tanto, un lenguaje que hace que el código fuente sea feo resulta enloquecedor para un programador exigente, como lo sería la arcilla llena de grumos para un escultor.

Al mencionar un código fuente feo, la gente, por supuesto, pensará en Perl. Pero la fealdad superficial de Perl no es la que yo quiero expresar. La verdadera fealdad no es una sintaxis de aspecto desagradable, sino tener que crear programas a partir de conceptos erróneos. Perl puede parecer un personaje de dibujos animados que dice palabrotas, pero hay casos en los que supera a Python conceptualmente.

Hasta aquí, por lo menos. Ambos lenguajes son, por supuesto, objetivos en movimiento , pero comparten, junto con Ruby (e Icon, y Joy, y J, y Lisp, y Smalltalk), el hecho de que están creados y son utilizados por personas a las que realmente les importa la programación, y esas personas suelen ser las que lo hacen bien.