Origen de la pregunta

Por regla general, los programadores somos autodidactas. A través de blogs, libros, videotutoriales o cursos intereactivos, solemos aprenden nuevos lenguajes o Frameworks. Por supuesto también hay escuelas. No puedo ignorarlo ya que me dedico a la enseñanza. El perfil que suelen asistir a las clases son de personas que necesitan ayuda para meter su primer pie en el charco. Luego, cuando adquieren confinaza y destreza, ellos solitos empiezas a chapotear. Encuentran herramientas, editores, plugins... Más tarde, si son constantes y apasionados, darán brazadas hasta alejarse de la costa con todo lo que quieran. Su primera biblioteca (suele ser JQuery), su primer lenguaje aprendido por ellos mismos, su propio IDE... casi se siente uno como un padre. Y así es, porque da igual cuantos consejos les des, no te harán ni puñetero caso. Sabes que se la van a pegar, pero te consuelas: deben aprender de sus propios errores.

Y de ahí surgue una pregunta que me suelen plantear otros alumnos curiosos: -¿Cual es el mejor lenguaje de programación para empezar?-

Aviso antes de continuar

La pregunta no tiene una respuesta fácil. Incluso puede que no tenga una respuesta. Cada persona es única y tiene una forma muy particular de absorver conocimiento. No le puedes enseñar igual a una persona inquieta que a una paciente.

Otro factor son las motivaciones. No es lo mismo una persona que quiere aprender a hacer páginas web que otra que desea hacer videojuegos. Hay que ser conscientes que cada lenguaje esta orientado a un sector diferente.

Y por último los gustos. A un Linuxero raro será que empiece por un lenguaje de Microsoft, o a una persona de letras un lenguaje que requiera mucho calculo.

En definitiva que será más orientativo que conclusivo. Y siento por las personas que buscaban un respueta rápida y en negrita. No la encontrarán.

¿Continuamos?

Python

Logo de Python

Pros

  • Sintaxis elegante. Es una preciosidad escribir en este lenguaje.
  • Sencillo. Posiblemente de los más cómodos de aprender.
  • Multiplataforma. Lo tendrás en casi cualquier sistema operativo.
  • Comunidad. Muchísimos libros y ejemplos por toda la red.
  • Mimético. Podrás realizar páginas webs, programas para el ordenador, juegos, apps para Android...
  • Django. Uno de los mejores Frameworks web te todos los tiempos.

Contras

  • Pegajoso. Es tan elegante que te será dificil irte a otro lenguaje sin dificultad. No, no es un alago. De verdad, luego te costará horrores poner llaves ({}) y puntos y comas (;) .
  • Complejo de distribuir. Tendrás dificultades a la hora de pasar tus programas a tus amigos.
  • Dualidad. Te toparas con que hay dos versiones: la 2 y la 3.

Javascript

logo_JavaScript

Pros

  • Muy visual. Todo lo que hagas podrás visualizarlo en un navegador.
  • Todoterreno. Puedes hacer cualquier cosa en casi cualquier sitio: webs, servidores, juegos, apps para Android y iOS, app para relojes inteligentes...
  • Con mejor futuro. La gente que lo utiliza no hace más que crecer y crecer.
  • Fácil de aprender. En una semanas ya puedes hacer tus primeros programas.
  • Herramientas. Miles de Frameworks, ejemplos, libros...
  • Videojuegos. Podrás usar hasta el motor Unity3D para hacer juegos comerciales.

Contras

  • Volatil. No para de evolucionar. O estas atento o te desactualizas. No estarás más de un año con el mismo Framework.
  • Lento. No se compila, por lo que es interpretado cada vez que es ejecutado.
  • Obligatorio. Las empresas ya dan por echo que sabes usarlo, y a un buen nivel.
  • Particular. Tiene elementos únicos por su naturaleza dificiles de comprender al principio. Como el DOM.

PHP

PHP logo

Pros

  • Padre de las páginas dinámicas. Perfecto para aprender a hacer sitios webs dinámicos.
  • Documentación. Al tener más de 10 años, tienes en la red todos los ejemplos que puedas inmaginar.
  • Wordpress. Al estar realizado en este lenguaje, tus posibilidades se disparan: blogs, tiendas online, portafolios, gestores...
  • Muchos hostings. Casi cualquier hosting es compatible.
  • Gran oferta de empleo. Las páginas dinámicas nacieron con él, por lo que hay muchas empresas donde sus sitios webs estan realizados en este lenguajes. Y necesitan mantenimiento.

Contras

  • El código puede volverse un poco lioso. Se mezcla HTML con PHP y la estructura se vuelve compleja si no usas objetos.
  • Por si solo no es útil. Debes conocer HTML y CSS si quieres darle un buen uso. Y casi seguro que tendrás que aprender un Framework para sacarle partido. Actualmente Laravel es el rey.
  • Es lento a la hora de ejecutar. Aunque con las últimas versiones parece que ha mejorado.
  • Solo para hacer páginas webs.

Ruby

ruby-logo

Pros

  • Ruby on Rails. Otro de los mejores Frameworks del desarrolo web.
  • Pocas líneas. Tu código será muy compacto y fácil de leer.
  • Multiplataforma. Trabaja donde quieras.
  • Buenas prácticas. Su forma de desarrollar te llevará por buenos hábitos y paradigmas.

Contras

  • Lento al ejecutar. Como PHP. Es lo que hay. El creador mejoró los tiempos de carga. Pero sigue siendo así.
  • Poca demanda laboral. Suelen ser más startups que empresas.
  • Dificil de irse. Tiene el mismo problema de Python. Su sintáxis es tan singular que luego cuesta mucho irse a otro. Normalmente los desarrolladores se casan con él.

Conclusión

Al final siempre buscamos un lenguaje que sea: reutilizable en el tiempo, fácil de dominar, rápido, versátil para cualquier tipo de problema y multiplataforma. Pero la realidad es que no existe. Solo hay que ver la gran cantidad de lenguajes existentes y que siguen naciendo poco a poco. Se consciente que el primero es importante, pero que no será el último.

Y tú, ¿cual piensas que es el mejor para empezar?