PreguntasFrecuentes

De ErlangAr

Contenido

Sobre ErlAr

¿Quiénes somos?

Somos un grupo de gente que habla castellano y decidió crear un grupo para poder compartir su interés por Erlang en su idioma.

¿Qué hacemos?

Discutimos sobre temas relacionados con Erlang para seguir aprendiendo sobre el lenguaje y tecnologías relacionadas.

¿Cómo surgió ErlAr?

Del interés de uno de sus miembros por poder emular la comunidad de Python Argentina pero aplicado al lenguaje Erlang.

¿Cómo es la organización interna de ErlAr?

Todos somos iguales mientras se respeten las normas de convivencia básicas de internet.

¿Cómo participar?

Uniéndote a las ListaDeCorreo presentandote y planteando tus dudas e ideas.

Quiero aprender Erlang. ¿Dónde consigo material?

En AprendiendoErlang intentamos mantener una lista de enlaces con contenido interesante para comenzar a aprender Erlang.

¿Como contribuyo al Wiki?

Sobre las herramientas de linea de comando

¿Como compilo un programa?

Usando el comando erlc y pasándole como parámetro el archivo a compilar:

erlc mimodulo.erl

Este comando en caso de no encontrar errores en el archivo va a crear un archivo mimodulo.beam que es la versión compilada del modulo.

¿Como ejecuto mi programa?

Usando el comando erl y pasándole como parámetro el nombre del modulo y función dentro del modulo a llamar.

Supongamos que tenemos el siguiente archivo llamado holamundo.erl:

-module(holamundo).
-export([saludar/0]).

saludar() ->
    io:format("Hola mundo!~n").

Para ejecutarlo escribimos:

erl -run holamundo saludar -run init stop -noshell

Lo cual ejecuta la función saludar dentro del modulo holamundo y luego la función stop dentro del modulo init, el ultimo parámetro indica que no deseamos iniciar una consola interactiva.

Para los que están dentro de un entorno Unix o GNU/Linux, pueden ejecutar código Erlang como un script con el comando escript. El script en Erlang deberá contener una función main con un argumento. Está función es donde inicia la ejecución del script y el valor que se pasa son los argumentos de script en una lista de strings (aquellos que programaron en C recordarán el main(int argc, char * argv))

#!/usr/bin/env escript
%% -*- erlang -*-
usage() ->
    io:format("$ hello.erl <nombre> ~n").

%% Usamos pattern matching si es una lista con un solo element
%% imprime el valor de esa variable. 
main([String]) ->
    io:format("hello, ~s!~n", [String]);
%% Si es cualquier otra cosa incluyendo una lista de varios elementos
%% imprime la forma de usarlo. La '_' ignora la variable.
main([_String|_ListOfStrings]) ->
    io:format("demasiados argumentos!~n");
%% El caso de arriba podría no haberlo agregado pero es de ejemplo
%% para pattern matching.
main(_) ->
    usage().

Sobre el lenguaje

¿Que aplicaciones están hechas en erlang?

  • RabbitMQ - una implementación de AMQP
  • ejabberd - un servidor de jabber.
  • el chat de Facebook basado en ejabberd
  • Wings 3D - un modelador 3D
  • YAWS - servidor web
  • Delicious (website)
  • CouchDB - una base de datos documental que utiliza map reduce
  • Amazon SimpleDB - una base de datos distribuida que es parte de Amazon Web Services
  • GitHub egitd - un reemplazo para git-daemon
  • Scalaris - un sistema de almacenamiento clave-valor con fuerte consistencia
  • Ringo - hash table distribuido
  • Disco - un framework tipo map reduce open source escrito por Nokia
  • tweet.im - gateway XMPP a Twitter escrito por ProcessOne
  • Riak - sistema de almacenamiento y procesamiento de datos decentralizado
  • Chicago Boss - framework wec MVC
  • Zotonic - sistema de gestion de contenido completo, rapido y amigablesystem
  • Smarkets - sistema de apuestas distribuido en tiempo real
  • Erlyvideo - servidor de streaming de video completo que soporta RTMP, RTSP, MPEG-TS, Shoutcast y streaming a IPhone
  • Heroku - un sistema de balance de carga para hosting Ruby on Rails
Herramientas personales