
Chicago Boss: The Erlang Web Framework - xj9
http://chicagoboss.org
======
MCRed
Does Chicago Boss have a lot of momentum? I thought it was idle now that the
founder had moved on. It's certainly a fairly complete and mature framework.

I'm thinking the hot new kids are:

Phoenix: [http://www.phoenixframework.org](http://www.phoenixframework.org)
and N2O: [https://synrc.com/apps/n2o/](https://synrc.com/apps/n2o/)

Of course, this is just my opinion, not a comprehensive list. But these two
are most interesting to me and seem to have momentum.

~~~
vezzy-fnord
The current maintainers are officially Dmitry Polyanovsky and Jesse Gumm (same
guy who maintains Nitrogen, from which N2O was forked, and also the
SimpleBridge web server abstraction library), I believe.

You're right it's not terribly active at the moment. It has rough edges, but
it's very much usable.

Phoenix arguably supports most of the same patterns as CB, but on top of
Elixir.

EDIT: Oh, by the way, you can actually write Chicago Boss apps using Elixir
and LFE instead of plain Erlang, if you'd like. This is officially supported.

~~~
616c
Also interesting is that Evan Miller is the original developer of Chicago
Boss, and he shows up a lot here. You will see it on the list of his software
on the home page.

[http://www.evanmiller.org/](http://www.evanmiller.org/)

I think he has since moved on. Notice some nice CB components, like ErlyDTL,
are also his work. He shows up a lot here, so I thought people would be
interested in it with regards to his other pieces about statistics, modeling,
and other topics.

~~~
pessimizer
Evan actually took over and maintained ErlyDTL, but it's Roberto Saccon's work
IIRC.

quickly confirmed: [http://erlang.org/pipermail/erlang-
questions/2014-January/07...](http://erlang.org/pipermail/erlang-
questions/2014-January/076422.html)

~~~
616c
Not surprising. Was not even familiar with the library until I saw the link in
these threads to the Github wiki page for ChicagoBoss mentioning features and
I saw ErlyDTL, and went to evanmiller's page.

I dug a little deeper because having used Django in a very small does years
ago, I have no idea what made its templating so desirable or unique that over
stacks copy it.

I assume up on deck: queue jokes about templating non-Erlang in Erlang and how
people clamor for anything else.

------
thraxil
I started playing with Chicago Boss a few years ago and it was nice. But the
models/records part is designed around Erlang's experimental "Parameterized
Modules" feature, which has since been more or less rejected (see:
[http://www.erlang.org/news/35](http://www.erlang.org/news/35)). It seems that
Erlang will continue to support the syntax for legacy reasons but I'm
extremely hesitant to hop on board a framework that uses an all but deprecated
feature so centrally.

~~~
vezzy-fnord
"Deprecated" isn't the proper term, I think. It's not in the mainline
language, but it is instead kept as a separate module in the form of a parser
transformation, which CB pulls in during build time.

In that regard, it's no different from pulling in any other library.

------
julius
They provide a nice comparison of current Erlang web frameworks:
[https://github.com/ChicagoBoss/ChicagoBoss/wiki/Comparison-o...](https://github.com/ChicagoBoss/ChicagoBoss/wiki/Comparison-
of-Erlang-Web-Frameworks)

------
Animats
_" Do you pine for a simpler time when web pages loaded in under one second?"_
That's a great mission statement. I see so many slow-loading pages which could
be simple static HTML pages.

------
r-u-serious
I prefer Axiom for its lightness:
[https://github.com/tsujigiri/axiom](https://github.com/tsujigiri/axiom)

...but that might just be because I built it.

------
mehrzad
Would the Erlang/Elixir platform be useful for small/hobbyist developers?
Everything I've read on it makes it seem very domain-specific, considering its
history in telecommunications.

~~~
thraxil
I don't know exactly what you mean by "small/hobbyist developers".

Yeah, Erlang really shines for high-availability, high concurrency network and
distributed systems stuff, which it was designed for, but many of the
properties that make it successful in that area are useful elsewhere as well.

First, obviously, a great deal of web and database stuff is network
programming and distributed systems when you get down to it so web servers,
proxies, websockets, messaging, etc are all well within Erlang's domain.

Here's a demo of someone using Erlang as firmware for a Drone, doing hot code-
swapping while it's in the air:
[https://www.youtube.com/watch?v=96UzSHyp0F8](https://www.youtube.com/watch?v=96UzSHyp0F8)

Erlang's bit packing/unpacking syntax
([http://www.erlang.org/doc/programming_examples/bit_syntax.ht...](http://www.erlang.org/doc/programming_examples/bit_syntax.html))
is really nice to work with. It came out of a need to handle binary wire
protocols, but it means that it can also be nice for any kind of binary file
format parsing that you might need to do.

ErlangOnXen ([http://erlangonxen.org/](http://erlangonxen.org/)) is really
interesting if you are into operating systems and virtualization stuff.

Erlang's not very focused on heavy numeric processing so you don't see it much
in science domains, but the actor model that it's built on maps well to Agent
Based Modeling:
[http://www.research.ucf.edu/Swarmfest/Program_Day2/Gene%20Sh...](http://www.research.ucf.edu/Swarmfest/Program_Day2/Gene%20Sher_FINAL_ABM_Using_Erlang.pdf)

~~~
digitalzombie
There's also a book, Handbook of Neuroevolution Through Erlang.

> First, obviously, a great deal of web and database stuff is network
> programming and distributed systems when you get down to it so web servers,
> proxies, websockets, messaging, etc are all well within Erlang's domain.

Caveats with database is their driver. Cassandra for example does not have
official supported drivers and I've met a gentleman that worked for TigerText
company have complains that it was pretty bad. So Erlang having small user
base have less official driver support.

