Hola a tod@s,
Los lenguajes interpretados están cobrando cada vez más importancia, son
sencillos, potentes y faciles de usar. Os indico alguna información sobre 3 de
ellos multiplataforma que son los que suelen tener más eco en la actualidad y
algo de bechmarks, aunque lo importante de estos lenguages es su sencillez y
potencia más que su velocidad, que lo hacen óptimos para pequeños desarrollos.
¿Usaís algún lenguaje interpretado multiplataforma?
PERL
http://es.wikipedia.org/wiki/Perl
Perl, Lenguaje Práctico para la Extracción e Informe (por Practical Extraction
and Report Language) es un lenguaje de programación diseñado por Larry Wall
creado en 1987. Perl toma características del C, del lenguaje interpretado shell
(sh), AWK, sed, Lisp y, en un grado inferior, muchos otros lenguajes de
programación.
Estructuralmente, Perl está basado en un estilo de bloques como los del C o AWK,
y fue ampliamente adoptado por su destreza en el procesado de texto y no tener
ninguna de las limitaciones de los otros lenguajes de script.
Perl 5 fue liberado el 17 de octubre de 1994. Fue casi una completa reescritura
del intérprete y añadió muchas nuevas características al lenguaje, incluyendo
objetos, referencias, paquetes y módulos. A destacar, los módulos proveen de un
mecanismo para extender el lenguaje sin modificar el intérprete. Esto permitió
estabilizar su núcleo principal, además de permitir a los programadores de Perl
añadirle nuevas características.
En 2007, Perl 5 continua siendo mantenido. Características importantes y algunas
construcciones esenciales han sido añadidas, incluyendo soporte Unicode, Hilos
(threads), un soporte importante para la programación orientada a objetos y
otras mejoras. La última versión estable liberada es Perl 5.8.8.
PYTHON
http://es.wikipedia.org/wiki/Python
Python fue creado a finales de los 1980s por Guido van Rossum en CWI en los
Países Bajos como un sucesor del lenguaje de programación ABC, capaz de manejar
excepciones e interactuar con el sistema operativo Amoeba.
Python es considerado como la "oposición leal" a Perl, lenguaje con el cual
mantiene una rivalidad amistosa. Los usuarios de Python consideran a éste mucho
más limpio y elegante para programar.
Python permite dividir el programa en módulos reutilizables desde otros
programas Python. Viene con una gran colección de módulos estándar que se pueden
utilizar como base de los programas (o como ejemplos para empezar a aprender
Python). También hay módulos incluidos que proporcionan E/S de ficheros,
llamadas al sistema, sockets y hasta interfaces a GUI (interfaz gráfica con el
usuario) como Tk, GTK, Qt entre otros...
El nombre del lenguaje proviene de la afición de su creador original, Guido van
Rossum, por los humoristas británicos Monty Python. El principal objetivo que
persigue este lenguaje es la facilidad, tanto de lectura, como de diseño.
En 1991, van Rossum publicó el código (versión 0.9.0) en alt.sources. En esta
etapa del desarrollo ya estaban presente clases con herencia, manejo de
excepciones, funciones, y los tipos medulares: list, dict, str y así
sucesivamente. Además en este lanzamiento inicial estaba presente un sistema de
módulos adoptado de Modula-3] El modelo de excepciones en Python es parecido al
de Modula-3, con la adición de una cláusula else .
Python alcanzó la versión 1.0 en Enero de 1994. Un gran conjunto de
características incluidas en este lanzamiento fueron las herramientas de la
programación funcional: lambda, map, filter y reduce.
Una innovación mayor en Python 2.2 fue la unificación de los tipos en Python
(tipos escritos en C), y clases (tipos escritos en Python) dentro de una
jerarquía. Esa unificación logró un modelo de objetos de Python puro y
consistente. También fueron agregados los generadores que fueron inspirados por
el lenguaje Icon.
Las adiciones a la biblioteca estándar de Python y las decisiones sintácticas
fueron influenciadas fuertemente por Java en algunos casos: el package logging
,introducido en la versión 2.3,el parser SAX , introducido en 2.0, y la sintaxis
del patrón decorator que usa el @, agregado en la versión 2.4
A abril de 2007, la última versión de producción de Python es la 2.5.1
RUBY
http://es.wikipedia.org/wiki/Ruby
Ruby es un lenguaje de programación reflexivo y orientado a objetos(lenguaje
interpretado), creado por el programador japonés Yukihiro "Matz" Matsumoto en
1993 que lo lanzó al público el año 1995.. Combina una sintaxis inspirada en
Python, Perl con características de programación orientada a objetos similares a
Smalltalk. Comparte también funcionalidad con otros lenguajes de programación
como Lisp, Lua, Dylan y CLU.
Features
* object-oriented
* four levels of variable scope: global, class, instance, and local
* exception handling
* iterators and closures (based on passing blocks of code)
* native, Perl-like regular expressions at the language level
* operator overloading
* automatic garbage collecting
* highly portable
* cooperative multi-threading on all platforms using Green threads
* DLL/shared library dynamic loading on most platforms
* introspection, reflection and metaprogramming
* large standard library
* supports dependency injection
* continuations and generators (examples in RubyGarden: continuations and
generators)
Ruby currently lacks full support for Unicode, though it has partial support for
UTF-8.
Benchmarks
"Computer Language Shootout Benchmarks" compara el funcionamiento de
implementaciones de problemas de programación típicos, en diversos lenguajes.
Sus implementaciones Perl normalmente toman más memoria que las implementaciones
en otros lenguajes, y esto varía los resultados de velocidad. Las prestaciones
de Perl son similares a las de otros lenguajes como Python, PHP o Ruby, pero más
lento que la mayor parte de lenguajes compilados.
Perl puede ser más lento que otros lenguajes haciendo lo mismo porque tiene que
compilar el fuente cada vez que corre el programa. En "A Timely Start",
Jean-Louis Leroy encontró que sus scripts en Perl tardaban mucho más tiempo en
correr que lo que él esperaba porque el intérprete perl perdía la mayor parte
del tiempo buscando y compilando los módulos. Como Perl no puede salvar su
compilación intermedia como lo hacen Java, Python y Ruby, los scripts Perl
conllevan esta sobrecarga en cada ejecución. La sobrecarga no es un problema
cuando la fase de ejecución es muy larga, pero puede sesgar significativamente
en tiempos de ejecución muy cortos, como se encuentra a menudo en los
benchmarks. Una vez que perl inicia la fase de ejecución, sin embargo, puede ser
muy rápido y típicamente supera a otros lenguajes dinámicos. Tecnologías como
mod_perl superan esto guardando el programa compilado en memoria entre
ejecuciones, o Class::Autouse que retrasa la compilación de partes del programa
hasta que son necesarias.
Debian Computer Language Benchmarks game
http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=all
1.0 C gcc 1.22
...
17 Python 21.25
...
21 Perl 24.99
...
48 Ruby 58.95