8 ms·
Chicago Boss: The Erlang Web Framework
- MCRed 12y agoDoes 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 12y agoThe 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 12y agoAlso 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 12y agoEvan actually took over and maintained ErlyDTL, but it's Roberto Saccon's work IIRC. quickly confirmed: http://erlang.org/pipermail/erlang-questions/2014-January/076422.html http://erlang.org/pipermail/erlang-questions/2014-January/07...
- 616c 12y agoNot 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.
- bshimmin 12y agoFrom there I stumbled upon what I think must be the most amazing `border-radius` polyfill of all time: https://github.com/evanmiller/nginx_circle_gif https://github.com/evanmiller/nginx_circle_gif
- istvan__ 12y agoNot really, I guess the development stalled. :(
- davidw 12y agoNot really: https://news.ycombinator.com/item?id=9426759 https://news.ycombinator.com/item?id=9426759 I'd look at Phoenix.
- julius 12y agoThey provide a nice comparison of current Erlang web frameworks: https://github.com/ChicagoBoss/ChicagoBoss/wiki/Comparison-of-Erlang-Web-Frameworks https://github.com/ChicagoBoss/ChicagoBoss/wiki/Comparison-o...
- Animats 12y ago"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.
- mehrzad 12y agoWould 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.
- xj9 12y agoI certainly think so! Its a bit of a paradigm shift, being a functional language and all, but once you wrap your head around it the platform is friendly and powerful. I was able to deploy a CB app on a Debian VPS within an hour or so of getting into the documentation.
- thraxil 12y agoI 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.html http://www.erlang.org/doc/programming_examples/bit_syntax.ht...) 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%20Sher_FINAL_ABM_Using_Erlang.pdf http://www.research.ucf.edu/Swarmfest/Program_Day2/Gene%20Sh...
- digitalzombie 12y agoThere'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.
- thraxil 12y agoI 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 12y ago"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.
- r-u-serious 12y agoI prefer Axiom for its lightness: https://github.com/tsujigiri/axiom https://github.com/tsujigiri/axiom ...but that might just be because I built it.