eJabberd 3 y MongooseIM: dos puntos de vista

El proyecto ejabberd es de los más grandes y populares de los realizados en Erlang. Muchas empresas, con la salida de la web interactiva, la aparición cada vez más grande de sistemas de chat en la propia web, e incluso a través de dispositivos móviles, se ha propagado gracias al uso que han hecho empresas como Tuenti, Facebook, Whatsapp, Yuilop, etc. de esta herramienta.

No obstante, processone, la empresa que desarrolla esta herramienta, no emplea los estándares que van surgiendo con el tiempo en el entorno Erlang. Si nos damos una vuelta por github, veremos que la mayoría de proyectos de Erlang tienen en su raíz un script llamado rebar y presentan un formato específico de directorios. Esto sumado a que el uso de ejabberd de listas en lugar de listas binarias, hace que el consumo de memoria se dispare cuantas más peticiones recibe y trata.

Ante esto, empresas como erlang solutions, han puesto su granito de arena y, a través de su fork MongooseIM, dan al usuario su versión de esl-ejabberd, que es una versión de ejabberd a la que le han corregido algunas y otras más de estos problemas que presenta ejabberd de cara a la comunidad de desarrolladores de Erlang/OTP.

No obstante, hay que agregar que processone no ha abandonado en todos estos años el desarrollo de ejabberd, ha seguido ampliándolo y haciendo de él una muy buena pieza de código y en este mismo año lanzan la versión 3, en la que prometen haber corregido algunos de estos problemas. Principalmente el del uso de listas, ya que implica una mejora notable en el uso de la memoria. En octubre podremos salir de dudas y comprobar si ha habido un acercamiento entre estas dos visiones y ejabberd 3 resulta ser una versión ante la cual no haga falta ninguna versión nueva de tipo esl.