9 de Enero de 2015 · 3 min de lectura
Hoy en un twitt David Bonilla pedía recomendaciones sobre qué lenguaje de programación debería aprender como buen propósito del 2015. Unos le han dicho que Python, otros que Ruby (on Rails), incluso alguno PHP.
Obviamente aquí un servidor le ha dicho que Python, pero como 140 carácteres son muy pocos para dar ningún tipo de razonamiento, creo que se impone un apunte algo más elaborado.
En APSL tenemos gente con experiencia en Java, PHP, C y otros lenguajes más hipsters como el FORTRAN, pero la mayoría de proyectos los hacemos en Python y éste es el lenguaje que hemos elegido como base para nuestro trabajo en el día a díá a la hora de crear proyectos y dar soluciones a nuestros clientes.
Python es un lenguaje que tanto te sirve para un roto que para un descosido, es multipropósito, puedes hacer una web o hacer cálculo matemático, un script para que te automatice una tarea de sistemas o un framework REST. Sirve para muchos ámbitos de programación y en la gran mayoría a un gran nivel. La cantidad de librerías que exiten y su gran capacidad com lenguaje pegamento lo hacen ideal para acometer cualquier tarea. Un ingeniero de Paypal, Mahmoud Hashemi, desmonta 10 mitos de Python aplicado a la empresa en un excelente apunte que recomiendo encarecidamente leer. CodeEval, en una infografía lo declara el lenguaje del 2014. La comunidad Python es grande, amable con los recién llegados y los fundamentos del lenguaje se aprenden muy muy rápido.
Tener un lenguaje de cabecera que te permita abordar todo tipo de proyectos es muy importante. Por mucho que se repita por ahí que un buen programador puede aprender un nuevo lenguaje en semanas esto no es así. Se necesitan meses, años de experiencia y dedicación para llegar a dominar bien un lenguaje de programación y más todavía para ser un buen programador. En un excelente artículo Teach Yourself Programming in Ten Years, Peter Norvig nos cuenta lo complicado que es realmente aprender a programar. La maestría la hace la práctica, el estar inmerso en el lenguaje, en poder leer código de otros y participar en proyectos. Por eso es tan interesante un lenguaje como Python, porqué puedes utilizarlo para prácticamente todo y además hacerlo de manera rápida. Python es fácil de leer, está pensado así, por lo que empezar a trabajar en un proyecto de otro programador normalmente es mucho más sencillo, entiendes el código, lo que quería expresar al escribirlo y no te tienes que pelear con el lenguaje de programación. Al ser multipropósito puedes ir aplicándolo paulatinamente, desde empezar ha hacer pequeños cálculos y manipulación de datos con Ipython notebook, utilizarlo como calculadora, hacer pequeñas webs con Bottle o Flask, hasta acabar haciendo webs en Django o análisis de datos. Es decir, siempre tienes la posibilidad y la oportunidad de utilizar Python.
Obviamente conocer más lenguajes es importante, Javascript sin ir más lejos es impresincible si te dedicas a la web o al mundo de las aplicaciones móviles híbridas. Nunca viene mal saber algo de PHP, o de Java o de Ruby, Scala, Erlang, (ponga aquí su lenguaje favorito). Pero llega un momento que conviene elegir cuál será nuestro lenguaje (o lenguajes) base. Puede ser Python, Java o cualquier otro, a partir de ahí siempre es interesante conocer un par o más para tener perspectiva.
Si como primer lenguaje Python es bueno (por eso lo elegimos en APSL) como segundo lenguaje roza la perfección: es fácil empezar a trabajar, está muy documentado y las librerías de plantillas son tan buenas que en nada estás utilizando Python para generar código para tu otro lenguaje (y más si es Java).
Pero como en todo no hay verdades absolutas, a la gente que trabajamos en Python nos encanta porqué nos permite hacer lo que nos gusta: programar y resolver problemas, de una manera sencilla, intuitiva pero seguro que hay ámbitos y situaciones en el que no es la elección adecuada, pero siempre es un lenguaje a tener presente y difícilmente va a ser una mala elección como lenguaje que conviene conocer.
PS: Y sí, como veis he resistido la tentación de decir porqué es mejor que el lenguaje A o B.