Todos tenemos que tomar decisiones alguna vez, qué camino coger, qué colegio es mejor para nuestros hijos, que película ver, qué pastilla tomar la roja o la azul (Matrix) y en el desarrollo de software ocurre lo mismo, en alguna ocasión nos paramos a pensar ¿qué tecnología debo conocer? ¿cual de ellas tiene más futuro? ¿me equivocaré o no? en definitiva, debemos elegir un lenguaje de programación. Siempre te hemos dicho que hay que evaluar y conocer su popularidad y luego tomar la decisión. En este artículo voy a hablar precisamente de esto, te daré los recursos necesarios para que tu mismo hagas la elección.
Cuando eres programador, da lo mismo que te dediques profesionalmente o no, existe una línea de conocimiento imaginaria que nos indica si podemos o no podemos caminar solos. Cuando atraviesas esa línea te sientes liberado, eres capaz de abarcar cualquier proyecto y saltar el obstáculo de la curva de aprendizaje de cualquier tecnología con rapidez. Al principio te sientes desorientado, no sabes qué tecnología elegir y te guías por lo que dicen los demás. Es importante escuchar y aprender de los que tienen experiencia pero, hay que ser pragmático y seleccionar la mejor opción para ti.
Lo primero, es importante tener un conocimiento de las tecnologías más populares y tus propias capacidades por ejemplo, un error que se suele dar mucho es decir: «Voy a aprender Java para desarrollo de aplicaciones con Android, C# para aplicaciones de escritorio en Windows y por último haré un curso de PHP para crear aplicaciones web». Si analizamos bien esta carta a Santa Claus, vemos que necesitaríamos dos vidas para poder abarcar todo el aprendizaje que nos proponemos. Si tu ya has decidido que la programación es lo tuyo, ahora te toca especializarte en una tecnología. No me cansaré de decir que tenemos que poner el foco en un lenguaje, pero ¿cuál elegimos? Analicemos un caso real, el mío. Ya os conté como fue mi camino hasta convertirme en un desarrollador .NET. Yo tenía en mente una idea, desarrollar aplicaciones de escritorio para Windows. Estaba seguro que no iba a fallar el tiro, era como tirar a canasta en una piscina olímpica, seguro que no fallas. Había elegido Microsoft, un valor seguro en los siguientes 50 o 60 años de mi trayectoria profesional.
Te tengo que confesar un secreto, estuve tonteando mucho con ActionScript y Flash, cuando todavía eran de Macromedia. Actualmente esta tecnología ha sido absorbida por HTML5 y CSS3 ¿quién lo iba a predecir? seguramente nadie y quizás sería muy complicado adivinarlo pero, no me ceñí a solo a aprender Flash, también me interesé mucho por PHP en combinación con ActionScript. Todo esto ocurrió en los años del boom de las .com, finales del siglo pasado y principios de este siglo, que antiguo suena esto :). Analicemos más detenidamente este caso, viendo la gráfica que nos presenta Google Trends, la primera herramienta que os presento.
Como ves en la gráfica, parece el descenso del Alpe d’Huez. Si en el 2005 apostaste por esta tecnología puede pasar, pero si en el 2010 seguías apostando, es un error muy grabe ya que se veía venir que no iba a tener futuro. Es diferente elegir un lenguaje de programación cuando te inicias que cuando ya tienes experiencia. Cuando hablo de experiencia hablo de haber trabajado con una tecnología, estar meses dándote cabezazos con el teclado porque no te salía un procedimiento, una función o un algoritmo. En el primer caso debes ser muy cuidadoso al elegir, sabes que debes estar varios meses e incluso años aprendiendo y por eso debes ir a lo seguro. En el segundo caso, la famosa curva de aprendizaje es más pasajera, no tardarás tanto en aprender y eso significa que no perderás mucho tiempo. Como no quiero influir en tus decisiones, eso lo dejo para otro artículo, te voy a dejar los recursos que deberías tener presente a la hora de elegir una tecnología u otra.
Cuando hablo de tecnología me refiero al conjunto de lenguajes, herramientas y recursos que engloban a la materia o temática que utilizarás para desarrollar un software por ejemplo, si quieres desarrollar una página web no te sirve con solo aprender HTML, deberás aprender también CSS, JavaScript y algún lenguaje del back-end, a todo esto se le llama tecnología web. Lo primero que te tienes que plantear es, ¿quiero una aplicación multiplataforma o no?. Dos ejemplos claros, una aplicación web es multiplataforma, se ve en cualquier sistema operativo y/o dispositivo y una aplicación Android solo se ve en el sistema operativo de Google. Para saber cual es la tendencia mira Google Trends y los datos estadísticos de Net Market Share, donde obtendrás información de uso sobre navegadores, sistemas operativos, resoluciones de pantalla, dispositivos, etc…. Haz una comparativa entre, por ejemplo, Android, iOS y Windows Phone, si quieres desarrollar para dispositivos móviles. Si tu elección es Android además deberías ver el uso por versión que nos facilita Google y si es iOS deberías mirar las de Apple. Como ves la cosa se puede enredar bastante.
Si lo que te interesa es aprender un lenguaje de programación, independientemente de la plataforma, consulta el indice Tiobe. Ya te he hablado en varios artículos y en varios programas del podcast sobre esta web. Recopila un ranking de los lenguajes más populares entre la comunidad de desarrolladores en base a diferentes índices. Esto implica que encontrarás más recursos de un lenguaje popular que de un lenguaje no tan popular. Siempre puedes cruzar los datos con los obtenidos por sistema operativo o dispositivo para saber si, además de ser popular, la plataforma en la que se ejecuta tiene futuro.

También existen otros tipos de índices para evaluar la popularidad de un lenguaje de programación, a mi siempre me ha gustado Tiobe pero quiero que sepas que hay otros. A continuación te doy una lista de los más interesantes.
Otro factor a tener en cuenta es la cantidad (dejemos de un lado la calidad) de ofertas de trabajo que hay en el mercado. Entra en los portales de empleo más conocidos como InfoJobs, Tecnoempleo o Monster y haz una búsqueda de la tecnología que quieres aprender. Te puede dar una idea de la demanda actual, incluso de los sueldos y tipos de contratos típicos. También puedes ver la competencia y el número de inscritos en una oferta.
Por último, en los repositorios de código abierto como Git Hub, Code Plex, Code Project, Stack Overflow te pueden dar una noción de los tipos de proyectos más seguidos y cuales son los debates más populares, en definitiva, comprueba hacia donde fluye el río de la programación y no intentes nadar contra corriente.
Por lo tanto, con todos estos recursos ya estarías preparado para enfrentarte a esta decisión que puede marcar tu vida como desarrollador. En la actualidad hay muchas tecnologías, muchos lenguajes de programación y la verdad, esto no tiene pinta de que se vaya a frenar. Cuanto antes te subas al carro del que más te guste, en el que más a gusto te encuentres, antes podrás llegar a tu objetivo. Mi opinión, como ya te he dicho, la dejo para otro artículo.