Primeros pasos con la programación en Erlang en FreeBSD
Introducción
Erlang es un lenguaje de programación funcional creado en Ericsson, diseñado para ser altamente escalable, de alta disponibilidad y tolerante a fallos, y que te permite cambiar módulos de código en tiempo de ejecución. La estabilidad de FreeBSD y la robustez de Erlang forman un equipo perfecto.
Erlang está ganando cada vez más popularidad gracias a su robustez y tolerancia a fallos. Cuando Facebook compró WhatsApp en enero de 2014, se supo que WhatsApp está construido sobre tecnología FreeBSD y Erlang, capaz de gestionar 1 000 000 de conexiones simultáneas con un solo servidor.
Software desarrollado con Erlang
Entre el software más destacado creado con Erlang se encuentra
Apache CouchDB, una base de datos JSON
ejabberd, un servidor XMPP con gran capacidad de escalabilidad,
RabbitMQ, una cola de mensajes muy robusta,
Riak, un almacenamiento NoSQL de clave-valor con escalabilidad lineal,
WhatsApp, la aplicación de mensajería instantánea más exitosa
Erlang en FreeBSD
Como es habitual en FreeBSD, el software se instala a través de un puerto o un paquete. Voy a dar por hecho que instalas el paquete ejecutando pkg install erlang, lo que te instala Erlang/OTP 18.2.x. OTP son las siglas de Open Telecom Platform y es un conjunto de componentes que hacen que Erlang sea tan genial. Cuando hablo de Erlang, en realidad me refiero a Erlang/OTP.
Primeros pasos con el intérprete
Para iniciar el intérprete de Erlang, ejecuta erl. Se abrirá un shell que esperará a que introduzcas algo. Puedes salir escribiendo q(). El punto es importante, ya que marca el final de tu entrada y Erlang empieza a ejecutar tu código.
Mostrar rutas de código
# erl
Erlang R16B03-1 (erts-5.10.4) [source] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V5.10.4 (abort with ^G)
1> code:get_path().
[".","/usr/local/lib/erlang/lib/kernel-2.16.4/ebin",
"/usr/local/lib/erlang/lib/stdlib-1.19.4/ebin",
"/usr/local/lib/erlang/lib/xmerl-1.3.6/ebin",
"/usr/local/lib/erlang/lib/wx-1.1.2/ebin",
"/usr/local/lib/erlang/lib/webtool-0.8.9.2/ebin",
"/usr/local/lib/erlang/lib/typer-0.9.5/ebin",
"/usr/local/lib/erlang/lib/tv-2.1.4.10/ebin",
"/usr/local/lib/erlang/lib/tools-2.6.13/ebin",
"/usr/local/lib/erlang/lib/toolbar-1.4.2.3/ebin",
"/usr/local/lib/erlang/lib/test_server-3.6.4/ebin",
"/usr/local/lib/erlang/lib/syntax_tools-1.6.13/ebin",
"/usr/local/lib/erlang/lib/ssl-5.3.3/ebin",
"/usr/local/lib/erlang/lib/ssh-3.0/ebin",
"/usr/local/lib/erlang/lib/snmp-4.25/ebin",
"/usr/local/lib/erlang/lib/sasl-2.3.4/ebin",
"/usr/local/lib/erlang/lib/runtime_tools-1.8.13/ebin",
"/usr/local/lib/erlang/lib/reltool-0.6.4.1/ebin",
"/usr/local/lib/erlang/lib/public_key-0.21/ebin",
"/usr/local/lib/erlang/lib/pman-2.7.1.4/ebin",
"/usr/local/lib/erlang/lib/percept-0.8.8.2/ebin",
"/usr/local/lib/erlang/lib/parsetools-2.0.10/ebin",
"/usr/local/lib/erlang/lib/otp_mibs-1.0.8/ebin",
"/usr/local/lib/erlang/lib/os_mon-2.2.14/ebin",
"/usr/local/lib/erlang/lib/orber-3.6.26.1/ebin",
"/usr/local/lib/erlang/lib/observer-1.3.1.2/ebin",
"/usr/local/lib/erlang/lib/mnesia-4.11/ebin",
[...]|...]
2>
Conceptos básicos
Enlaces adicionales sobre programación en Erlang
Un recurso muy bueno para programar en Erlang es ¡Aprende un poco de Erlang para tu propio bien!



