LA PARADOJA DE PYTHON
OriginalAugust 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 para trabajar en un proyecto de Java.
No quise decir con esto que los programadores de Java sean 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 realmente les gusta programar 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 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á 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 que hay que aprender, si se quiere 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 aquí también hay una especie de selección: son exactamente las empresas para las que los programadores más les gustaría trabajar. Google, por ejemplo. Cuando anuncian puestos de trabajo de programación Java, también quieren experiencia en Python.
Un amigo mío que conoce casi todos los lenguajes ampliamente utilizados utiliza 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. Puede parecer una razón frívola para elegir un lenguaje sobre otro. Pero no es tan frívola como parece: cuando programas, pasas más tiempo leyendo código que escribiéndolo. Empujas bloques de código fuente como un escultor hace con bloques de arcilla. Así que un lenguaje que hace que el código fuente sea feo es exasperante para un programador exigente, como la arcilla llena de bultos lo sería 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 la que quiero decir. La verdadera fealdad no es una sintaxis de aspecto áspero, sino tener que construir programas con los conceptos equivocados. Perl puede parecer un personaje de dibujos animados que insulta, pero hay casos en los que supera a Python conceptualmente.
Hasta ahora, de todos modos. 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 fueron creados y utilizados por personas que realmente se preocupan por la programación. Y esos tienden a ser los que lo hacen bien.