miércoles, 7 de octubre de 2009

¿ Qué es Erlang ?

Erlang es un lenguaje de programación y un entorno de ejecución de los programas creados en este lenguaje. Fue creado en Ericsson y liberado como open source en el año 1998.

Entre sus principales características destacan o asustan :) las siguientes:
  • Lenguaje funcional 
  • Asignación única
  • Tipado dinámico
  • Distribuido y concurrente (Actor Model)
  • Tolerante a fallos
  • Soft-real-time
  • Cambio en caliente del código
  • El uso de threads es extremadamente sencillo y muy útil
  • Escala linealmente en los sistemas multiprocesador.
  • OTP es el framework de patrones de diseño y librerias necesarias para poder realizar un proyecto en Erlang.
En los últimos años a surgido bastante interés en él, debido a su uso en varios productos de importantes empresas:
  • Amazon SimpleDB
  • El Chat de Facebook
  • El servidor de jabber/XMPP ejabberd
  • RabbitMQ un servidor que implementa el protocolo AMQP.
  • Apache CouchDB, que utiliza Canonical para su servicio Ubuntu One de sincronización de ficheros
Por último antes de entrar en detalles del lenguaje el clásico "hola mundo", en 2 versiones

-mod(hola).
-export([di_hola/0]).

di_hola() ->
  io:format("Hola, Mundo").

En este ejemplo no se observa la potencia del lenguaje, para ellos se muestra otra versión que utiliza los conceptos de concurrencia y paso de mensajes del "Actor Model"

-module(hola1).
-export([di_hola/0]).

di_hola() ->
   Pid = spawn(fun() -> loop() end), %Lanzamos un proceso que ejecuta la función loop
   Pid ! hola,  % Le enviamos al proceso el mensaje hola
   Pid ! adios. % Le enviamos al proceso el mensaje adios

loop() -> 
   receive   
      hola -> %El proceso recibe el mensaje hola
         io:format("Hola, Mundo !~n"), %Imprime el mensaje "Hola Mundo"
         loop(); % Volvemos a llamar a la función loop por si hay mas mensajes
      adios ->  % Llego el mensaje adios
         ok  % Devolvemos ok y finalizamos.
   end.




Llegamos al final del primer post sobre Erlang, en los posts siguientes iremos desgranando el lenguaje y conoceremos su verdadera potencia ...

Es un lenguaje que engancha y mucho ...

No hay comentarios:

Publicar un comentario