martes, 3 de julio de 2007

En búsqueda de un Lenguaje de programación

Lenguajes estudiados:

Scala: Reune varios paradigmas en una forma elegante
Interprete/Compilador
http://www.scala-lang.org/

Ruby: Un apróx a un OOP Puro, es notable la influencia de lenguajes como SmallTalk, Lisp y Python.

SmallTalk busca ser un lenguaje humanamente entendible, por igual, Ruby desea ser lo más natural posible según sostiene Matz su autor, intentando tener un aspecto simple con una gramatica más corta comparada con lenguajes como JavaScript y Python, pero, internamente más compleja.

Al visualizar la gramatica de Ruby en GraphViz, se puede ver un nodo llamado primary él solo, engloba la gramatica de las expresiones del lenguaje, es interezante comparar las gramaticas visualizandolas como grafos, es un poco como ver la mente del diseñador. Me gustaria estudiar más detalladamente la Gramatica de Scala, F# y Ruby

Por ahora la implementación C es un poco lenta, pero a medida Ruby se ha hecho popular hay más gente estudiando nuevas posibilidades, como la de una maquina virtual para Ruby, o bien, Ruby.Net, o bien implementar Ruby on Ruby, incluso encontré un proyecto llamado RType hecho en Haskell.



Python:

PyPy es un proyecto llamativo, es una implementacion de Python en Python. Pienso que gracias a Ruby proyectos como Python, Haskell, Groovy están llamando la atención de la gente que desea probar nuevas alternativas

http://www.ruby-lang.org/es/

Lua: Un lenguaje pequeño, usando justo lo necesario.
Es mucho más fácil de aprender que Python o Ruby

http://www.lua.org/

1 comentario:

Gubatron dijo...

Definitivamente un prompt interactivo para probar codigo hacen la programacion mas divertida. Es esta una de las razones por la cual me he enamorado de Python.

Es mi mejor fuente de referencia del lenguaje, todo de lo que no estoy seguro siempre lo pruebo primero en el prompt, y en el caso de Python las palabras magicas que mas utilizo en esa linea de comando para leer la documentacion de los objetos y que pueden hacer son:


dir(obj)
Para ver todas las propiedades de un objeto

help(obj)
help(obj.metodo)
Para ver la documentacion

id(obj)
hex(id(obj))
Para ver la direccion de memoria de un objeto, o metodo

print obj
Para imprimir un objeto