El mejor lenguaje de programacion

22.03.2013 Por

La pregunta de cual es el mejor lenguaje de programación, es algo que para mi sorpresa me preguntan muy a menudo.

Es curioso que la pregunta venga de diferentes ámbitos y tipos de persona.

Aprender a programar es algo que no es tan sencillo como muchos creen. No es que sea imposible, evidentemente, pero requiere muchísimas horas, muchísima lectura y muchísimas pruebas.

Creo que antes de saber cual es el mejor lenguaje de programación, hay que tener varios conceptos bien claros y anclados en la cabeza:

  1. Filosofía de la programación, y con esto no estoy hablando de nada relacionado con Kant :), sino los conceptos básicos, cómo separar un problema en partes más pequeñas y éstas y partes más pequeñas todavía.
  2. Cómo funciona aquello donde vamos a programar. No es exactamente lo mismo programar una página web, que un programa de escritorio o un componente para tu consola. También hay diferencias entre los diferentes sistemas operativos, incluso entre versiones del mismo.
  3. Las capacidades de los compiladores y los intérpretes no son infinitas. No se puede pensar que un programa (compilado o interpretado) no ocupa memoria, ni encargarse de ésto cuando ya esté programado. Con esto quiero decir que no puede usarse un framework enorme para una web sencilla, o un lenguaje de programación no adecuado a su entorno.

Muchos de los que hablan con programadores experimentados les extraña la “obsesión” que parecen tener con que el programa esté optimizado, que ocupe poco, incluso que el editor que usen sea ligero. Esta es una “obsesión” que creo que es básica. Menos es más.

Tampoco podemos creernos que somos los mejores programadores porque conozcamos bastante bien un lenguaje. Hay muchos programadores y muy buenos y muchas veces ya tienen programadas cosas que nos serán muy útiles, así que nada de volver a programar algo que ya existe :).

Por último, no sé exactamente a qué edad es mejor empezar a programar, pero creo deducir, que como en las matemáticas o cualquier otra materia, cuanto más joven se empieza, mejor se asientan los conceptos básicos.

Ahora sí, voy a entrar en materia.

Cual es para mi el mejor lenguaje de programación. Pues en principio la respuesta es bastante sencilla: el más adecuado a lo que vayas a hacer.

Existen muchos tipos de lenguajes y no es casualidad. Nacen para solucionar determinadas tareas, normalmente simplificando lo que deberíamos hacer con lenguajes más antiguos.

Cuando salí de la facultad (ya ha llovido) ni siquiera existía Java, nos enseñaban a hacer compiladores, pequeños sistemas operativos, MRI’s o cosas similares en Pascal. Si nos poníamos muy muy técnicos, entonces nos metíamos con C. Nada más. Entonces parecía que Pascal (Borland Pascal entonces) y C nos servían para prácticamente todo, y es cierto hasta un punto.

Sin embargo, cuando salió Java, la mayoría de las empresas de software solicitaban analistas o ingenieros que supieran Java, probablemente porque solucionaba dos cosas muy bien: una es que era multiplataforma y era una forma mejor de vender, y la otra es que con la cantidad de componentes que ya tenía hechos Java se podían hacer aplicaciones muchos más rápido. Esto venía a cubrir un espacio en el software empresarial muy grande y se aceptó muy muy rápido. Java tiene otros inconvenientes (insalvables para mí), que son el mal resultado que dan sus máquinas virtuales y lo pesado que se vuelve todo. En el mundo Android, Java es el lenguaje por excelencia para sus aplicaciones. Aquí su comportamiento es diferente, porque compila prácticamente todo a máquina y su eficiencia es mejor.

En el mundo de la web, PHP ha sido el rey indiscutiblemente y sigue siéndolo. Pero han aparecido alternativas poderosas, que aunque sean incluso más antiguas que PHP no han aparecido realmente hasta la mitad de la década de los 2000. Estoy hablando de Python y Ruby. En mi opinión, vienen a simplificar bastante el trabajo que se haría con PHP en las mismas condiciones.

También JavaScript está tomando una fuerza que al menos yo no esperaba, gracias a NodeJS y que se pueda ejecutar también en el lado del servidor. Creo firmemente, que el hecho de que pueda ejecutarse tanto en el lado cliente como en el lado del servidor va a favorecer que mucha gente aprenda mucho más y mejor Javascript, que tengo la sensación que siempre pareció un lenguaje de segundo nivel para hacer cosas vistosas pero poco útiles y nada más. Sin embargo está demostrando ser tan poderoso como muchos otros lenguajes.

Se puede hablar de muchos otros lenguajes que existen, miles en realidad, como Scala, SmallTalk, Tcl, D, Vala, Haskell, y un largo etcétera.

No creo que haya ningún programador experimentado que le guste un lenguaje al 100%, y si es así es que está demasiado anclado a un solo lenguaje de programación que es lo que le va solucionando la vida o con el único que trabaja. La verdad es que todos los lenguajes tienen sus pros y sus contras.

Como lenguaje multiusos, hasta me he creado en la cabeza la sintaxis ideal para mí (de la que hablaré en otro post), me quedaría personalmente con Python siempre que no sea software muy técnico. ¿Porqué? Pues por que tiene una sintaxis sencilla, es bastante eficiente y puedo hacer con él programas de escritorio, de consola o web. En contra diría que todavía tiene poca aceptación en las empresas de hosting compartido, que no vamos a engañarnos, es lo que usan la mayoría de las pequeñas aplicaciones web y eso suele ser un handicap, que poco a poco va solucionándose.

Como lenguaje más cercano al sistema operativo me quedaría con C y si se puede C++. Son dos lenguajes de los mejor compilados que he visto y más eficientes.

Como parte de una pequeña aplicación web me quedaría con PHP por su gran aceptación, por tener una sintaxis común a muchos lenguajes y porque hay infinidad de scripts desarrollados en él.

Por último como lenguaje de programación para aprender. Aprender se puede hacer de diferentes maneras, pero creo que desde los más básico a los más elevado es la mejor opción pasando por diferentes lenguajes. Pascal es un lenguaje que creo muy adecuado para aprender y luego pasar a otras cosas. También Python, aunque en este último creo que nos perdemos partes de los paradigmas de programación tradicionales. Ada, aun siendo un lenguaje poderoso, también me parece un buen punto de partida.

Si lo que queremos es un lenguaje orientado a web directamente, me centraría en Python y JavaScript. Dos sintaxis diferentes, con Python como multiparadigma y Javascript como orientado a objetos prácticamente puro (sin herencia o polimorfismo).

En el próximo artículo describiré la que para mí sería la sintaxis perfecta.


Programacion