En el mundo de la programación parecen crearse lenguajes a diario. Ayer nadie sabía de Ruby, pero hoy todo el mundo habla de él. hace tiempo nadie pensaba en Phyton, pero ahora es “lo de hoy“. Desde luego que los lenguajes de programación tienen sus pros y sus contras. Unos son intérpretes y por ende son más lentos que los lenguajes compilados (aunque con la velocidad actual de las computadoras esto ya prácticamente no es punto de discusión). Algunos lenguajes están disenados para todo tipo de aplicaciones mientras que otros han sido creados para satisfacer las necesidades de un nicho en particular. Hay pues de todo para todo.
Si usted quisiese aprender un lenguaje de programación al mes (lo cual no recomiendo, aunque hablaría de que usted tiene demasiado tiempo libre), he aquí algunas sugerencias:
Clojure
Es un dialecto de Lisp para la máquina virtual de Java. La virtud de esta idea esa que se integra fácilmente a las bibliotecas de Java y entonces se tiene una buena combinación de cálculo lambda y Java.
Factor
Es un lenguaje de concatenación, lo que significa que usa un stack en lugar de usar variables con nombres para pasar los datos de un lado a otro. Por un tiempo pensé que era como Forth, que usa un stack visible al usuario para todos sus procesos, pero estrictamente hablando la idea de Factor es otra. La realidad es que me parece demasiado oscuro.
Go
Google anunció Go a finales del 2009 y se describve como algo entre C++ y Python. Participó fuertemente en la creación del mismo Ken Thompson, quien creó Unix y que además, trabajó con Ritchie en el lenguaje C.
Haskell
Es un lenguaje funcional que usa algo llamado “lazy evaluation“. Tiene sus puntos fuertes. Algunas ideas se pueden expresar muy fácilmente, incluso algunas que parecen muy sofisticadas. Pero otras ideas se convierten en un calvario cuando hay que programarlas en Haskell. No me convenció nunca.
Erlang
Un lenguaje de programación concurrente que se diseñó para aplicaciones tolerantes a errores en tiempo real. Conceptualmente me parece de lo más nuevo, particularmente en lo que se refiere a la concurrencia.
Scheme
Es como Lisp, pero por alguna razón parece haberse quedado detenido en el tiempo. El libro de cabecera es “The Little Schemer Book“, pero se antoja anticuado, casi como Lisp.
Fantom
Antes se llama Fan. fantom supuestamente es portátil entre los protocolos JVM, .NET, CLR y JavaScript. Es un lenguaje orientado a objetos (con propiedades y métodos, herencia y polimorfismo), con la sintaxis de C. Quizás esta portabilidad sea lo más interesante de esta idea. Por lo demás, parece más C con lo mismo.
Scala
Otro lenguaje compatible con la máquina virtual de java. Scala integra las características más importantes de la orientación de objetos como lo que puede verse en los lenguajes funcionales.
OCaml
Objective Caml es un lenguaje funcional, orientado a objetos, con tipos estáticos. No parece muy poderoso en general.
Ruby
Este es un lenguaje de scripts, de guiones, muy similar a Python. No me he metido mucho en ver qué cosas bonitas hace, pero pienso que merece dedicarle tiempo.
Lua
Un lenguaje de scripts pequeño y portable. Lua es muy popular en el mundo de los juegos en donde se usa frecuentemente scripts para motores visuales 3D complejos.
Prolog
Uno de los lenguajes más importantes de la llamada inteligencia artificial. Es un lenguaje funcional y en algunas implementaciones incluso le han incorporado la programación orientada a objetos. En mi opinión es mucho más interesante que Lisp y asociados, amén de que su paradigma basado en el algoritmo de Robinson lo hace muy interesante.
Fuente: Coderholic