sábado, 24 de julio de 2010

Qué lenguaje de programación debo aprender? En julio es Java

Toda persona que trabaja y/o estudia en el área de computación ha evaluado aprender algún lenguaje de programación. Aunque para algunos ha sido fácil la decisión (el proyecto o curso en que trabajabas tomó la decisión por tí), para otros se puede convertir en toda una experiencia religiosa. Algo así como si tuvieras que decidir entre ser cristiano o musulmán (nada malo en escoger uno o el otro, simplemente que hay que escoger). Así que la pregunta es, cuál lenguaje debo escoger si quiero aprender a programar?

La respuesta correcta es cualquiera, pero con una observación importante. Puedes escoger cualquier lenguaje pero debes aprenderlo bien. O sea, a profundidad. Este ha sido uno de los mejores consejos de tecnología que me han dado (gracias Rob!) ya que es muy probable que todo lo que uno quiere o necesita hacer, se puede lograr con cualquiera de los lenguajes más populares. El problema es que no siempre uno aprende todo lo necesario para resolver la mayoría de las tareas que uno enfrenta. Por esta razón es que cuando decidas aprender un lenguaje, explora todas las opciones que te ofrece. En ocasiones esto significa aprender más sobre las librerías o paquetes disponibles o las funciones o estructuras de datos que permite utilizar un lenguaje.

Una buena razón de aprender bien un lenguaje de programación es que varios de los conceptos utilizados (propiedades) al desarrollar el lenguaje, son también utilizados en otros lenguajes. Esto facilita que cuando desees aprender otro lenguaje, la transición sea más sencilla que si no supieras ningún lenguaje. Como ejemplo, tienes los lenguajes orientados a objetos como Java, C++ e incluso lenguajes scripting como Python.

Ok, pero que ocurre si alguien quiere una respuesta más sencilla a la presentada arriba? Que tal si la persona que quiere aprender sobre programacion desea que le indiquen un lenguaje y que no tenga que tomar la decisión religiosa por su cuenta? Entonces tengo dos comentarios. Primero, el lenguaje de programación a aprender dependerá del área en donde trabajes o desees trabajar. Por ejemplo, si eres o deseas trabajar en el área de tecnologías Web, entonces te conviene aprender lenguajes como Java, Javascript, C# o PHP. Si eres más un administrador de sistemas, es posible que debas prestarle atención a lenguajes tipo scripting como Perl o Python.

El segundo comentario es que puedes darle una ojeada al índice de programación TIOBE. Este índice está basado en la popularidad de los distintos lenguajes de programación. Para calcularlo, se utiliza los buscadores Web como Google, MSN y Yahoo! y es una manera de medir la popularidad de los lenguajes. Los autores han publicado mensualmente este índice desde el año 2001. Abajo aparece el resultado para este mes, julio 2010.

Fuente: tiobe.com

Aunque los resultados no necesariamente sorprenderán a muchos (Java, C y C++ son los tres más populares), es interesante ver las tendencias y cambios que varios de estos lenguajes reportan en distintos meses. En la tabla de arriba, la columna 5 indica el índice del lenguaje, seguido por el cambio en comparación a un año atrás y la columna 7 indica la categoría del lenguaje. Un lenguaje categoría A es considerado "mainstream" o de uso popular. La definición completa del índice, así como de las categorías, la puedes encontrar aquí.

Al final, el índice TIOBE tampoco responde a la pregunta original sobre el tipo de lenguaje que uno debe aprender. Pero como buenos ingenieros si provee luces sobre cuán populares pueden ser los lenguajes (de acuerdo a lo que indica solamente el Internet, o la parte de él que revisan los buscadores) y nos da números, lo que nos permite pensar y decidir analíticamente. Y eso le puede dar paz a uno... al menos si eres ingeniero. :)