Hacker News new | past | comments | ask | show | jobs | submit login
Zotonic - A High Performance Web Framework in Erlang (aosabook.org)
93 points by deathtrader666 on Dec 27, 2013 | hide | past | favorite | 27 comments



I spent the week before the holidays playing with zotonic. It's quite impressive and in my humble opinion blows away what wordpress does. Once the community levels up I'm sure it will give all other cms platforms a run for their money.

The features are impressive, but the requirements for the lowest-common-denominator (strictly regarding code-savy-skills) consumer of a cms might be a bit higher than they can deal with.

I've never used erlang before that, and have a heavy exposure to php and js recently. I did not have extreme trouble getting basic things working. Small things like syntax were the hardest part.

That being said, this really blurs the line between framework and cms. If anything, this is a framework specifically for a cms. It looks like it's light-weight enough that it could be grown into other uses, but for that I'm leaning towards ChicagoBoss.


> blows away what wordpress does

Wordpress is top dog because it's easy like copy-paste, not because it's particularly powerful. Probably every other PHP CMS blows away Wordpress in terms of features, but they all add a degree of complexity.


> It's quite impressive and in my humble opinion blows away what wordpress does

Dont even know why would anybody throw Wordpress in the debate, makes your sentence sound quite s...trange... Something like , "a Ferrari blows away what a bicycle does". Nobody is going to replace a Wordpress blog with an Erlang framework, and if you do ,you probably did not need to use Wordpress at first place.


I use this for my blog site. It is an awesome Content Management System (I wouldn't call it a Web framework). It has some caveats but is as good as Django in my opinion.


It sounds like you are comparing Zotonic to Django in an apples-to-apples sort of way, so I'm not sure why you don't consider it to be a framework. I think that it's definitely a framework as much as Django is, it just happens to come with a CMS app built on top of it pre-installed, which looks complete enough to be "the product" when it's really just a starting point. The project website could be clearer about this.

Having said that it's not "just a CMS," it is in fact pretty awesome for building simple marketing/brochure mostly-static-but-with-a-contact-form-and-blog type websites. Individual websites can be hot loaded into the running daemon, and started, stopped, and rebuilt from a git repo through a web based interface. I host a couple local business sites for some recurring income and I'm strongly considering porting my existing clients to it and using it for similar sites in the future.

Despite that simple use case, I wouldn't dismiss it for more complex projects, as long as, e.g., its data model (a triplestore built on top of postgres) works for you.

In summary, in my opinion it has some caveats but is as good as Django. :)


I would definitely call it a framework. Just one that includes a CMS on top (which is what they say in the first paragraph). Take away the ORM and HTTP server and some extensibility and I might agree but I think this definitely qualifies, though I know it's relative for the most part.


They call themselves a framework, though, not a CMS. And you've compared it to Django, which really is a framework, not a CMS. What part of Django would you say it is most directly comparable to?


The most striking similarity is the template syntax, it uses an Erlang implementation of Django templates. I think it draws some inspiration from Django's "batteries included" philosophy in a couple of ways. It encourages developing with small re-usable modules, like contact forms or blogs, that might be considered similar to the Django apps philosophy. It has an automatically generated admin area for your content/models, but it doesn't have a strong notion of model fields so you might have to do more admin view development (HTML/CSS/JS). It has an opinionated data and deeply integrated data model abstraction, although not being relational it isn't at all similar to Django's ORM.

In Zotonic a single Erlang VM hosts multiple sites (equivalent to Django projects), which can be nice for certain uses. Like most Erlang frameworks it is a little better at handling concurrency and AJAX-y ("realtime") websites than some of the more popular web frameworks, to support this the template language is extended to allow wiring UI elements to controllers without explicitly writing the JavaScript.


We live in amazing times where a framework/tool/hybrid like this pops up as complete as it is, with the sort of instructions for installation that used to take a year to appear.

I'm going to get it installed, just to celebrate that!


It's my first commend at ycombinator and I want to say: Hacker News, I love you! ^^

I tried to install Erlang IDEs such as Erlide ( https://groups.google.com/forum/#!topic/zotonic-users/CdLhhQ... ) and open Zotonic projects but features like code completion and quick reference didn't work. Maybe some folder access rights problems, I don't know.


This looks really interesting. A very well laid out description of the reasons behind the core decisions made.

Any plans on supporting elixir ? The syntax seems much nicer then plain old Erlang.


They're totally interchangeable so there's no reason you couldn't, maybe with no modifications. It's not uncommon to see a mix of Erlang and LFE (lisp flavored Erlang) or elixir when they're well suited (usually for meta programming features to eliminate repetitive Erlang.


I would pay a lot for a Rails-like framework written in Erlang. Erlang really hits a sweet spot between performance and developer-friendliness.


Have you looked at http://www.chicagoboss.org? "Chicago Boss is the answer to slow server software: a Rails-like framework for Erlang that delivers web pages to your users as quickly and efficiently as possible."

I played with it and found it to be pretty Rails-like, even including several moments of "what foul sorcery is this?"


You should take a look at Chicago Boss[1], the Rails-like Web framework for Erlang.

[1]: http://www.chicagoboss.org/


You're in luck!

Check out ChicagoBoss, another Erlang web framework which claims to follow the Rails-like MVC pattern closely.

http://www.chicagoboss.org/


Is not compatible with Erlang R16B03


Have you tried out Chicago Boss? It explicitly bills itself as Rails-like.

http://www.chicagoboss.org/


I've experimented with Chicago Boss a bit; it's an excellent framework, but I feel it still has a ways to go before it can compete with Rails.


Generally, new stuff that is successful does not compete head-on, unless it's got some kind of "unfair advantage" like a big company behind it. In other words, it does something a bit better, but also differently. Rails was better organized and cleaner than PHP, but less bureaucratic than Java.

Chicago Boss can't compete with all the users and plugins and everything that Rails has, head on, so it's probably best used where it has an advantage on Rails: stuff like websockets where holding a lot of them open is a piece of cake for Erlang, but more of a resource hog for Rails (at least it used to be that way, has 4 improved things?).


You can take a hybrid approach:

https://github.com/erlyvideo/rack


Chicago Boss might fit the bill for you; I tried it and found it felt like it was trying to force a foreign model on Erlang a little too hard. I ended just putting something together myself with cowboy and other pieces like erlydtl, and ended up quite happy with it.


Amazing blog. I had also tried Zotonic and was impressed by the performance.

This should work great in Indian market.


I'm not being combative here, but I'm curious why you said "This should work great in Indian market."


Because he is from Brazil.


If i could guess, it might be due to Zotonic's good i18n story.


wow... integrated OAuth and ACL to the site or database... and code hot swaps while the site is running...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: