Interesting, but I'd like some more depth/detail. The guy has been doing Erlang for all of 10 months, noticed some of the good stuff about it, and created a web framework with it. Ok... but... what does it really do that takes advantage of Erlang? They talk about the DB layer a bit, but isn't that really sort of the killer for most people, rather than Rails or PHP or whatever? Looks interesting, but I want to hear more than why Erlang is cool - I know that already, I want to know what they did with it that takes advantage of its strengths.
For now, Nitrogen is primarily aiming to bring Erlang up to par with other languages for creating dynamic, Ajax-ified Web 2.0 applications.
"What does it really do that takes advantage of Erlang?"
The big advantage is that, with Nitrogen, you can develop your entire Web 2.0 application in Erlang. Before Nitrogen, most people did the front end in Rails and the back end in Erlang, and used a bridge, such as Apache Thrift, to get them talking.
Once your web app is in Erlang, you can:
* Run on Mochiweb or Yaws, both extremely performant http servers.
* Distribute your web server across multiple nodes without worrying about sticky sessions.
* Reap all of the other Erlang goodness, such as hot code swapping, built in application monitoring and restarting, an extremely stable environment, etc. (All of the stuff that made Amazon use Erlang for SimpleDB and Facebook use Erlang for Facebook Chat.)
"What about the DB layer?"
Mnesia, Erlang's built in database, actually does the job quite well. Languages tend to add a DB layer to ease the pain of jumping into and out of SQL, and we're so used to this that we expect to have to do the same in any language. But in this case, Mnesia thinks in Erlang syntax, so there is really no need to wrap it in anything. Plus, Mnesia works really well for documents with changing schemas, which is very Web 2.0.
If you'd rather avoid Mnesia and use SQL, then ErlyDB is your best option.
Happy to answer any more questions.
Best,
Rusty - Creator of Nitrogen Web Framework
p.s. - Saw this post through a backtype.com alert (hooray BackType!)
Cool, thanks for replying. Mnesia is not part of Erlang that I've ever looked at in depth, so it remains something of an unknown. I really wish someone would publish some information and statistics about how it handles ever larger data sets. Something like Postgres or Mysql is more of a 'known quantity' in terms of what it can handle, how to improve it, and so on. Mnesia, we know, does distributed really well, but I know less about how its performance/scaling characteristics for other aspects.
Anyway, looks like a cool effort, so good luck, and keep writing about it!