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.
- 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
-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