This is a follow up on a previous post of mine, XQuery, Node.js and Opa – which is the “new Java” of web development?. So here comes the table…
|Purely functional||as pure as it gets||not so pure but mostly functional||cumbersome to write functional code||not pure but functional|
|integrates well with a database||with RDMSs (via HaskellDB) and with a native Haskell store called acid-state||with XML-DBs||with MongoDB or CouchDB||with MongoDB or CouchDB|
|Web server||good||good, e.g. Sausalito or eXist||Node.js||e.g. Node.js|
|GUI code executed seamlessly on client and server||no||no||yes, using Meteor or Derby||yes, integrated|
|Templating system||yes, e.g. HStringTemplate||not that I know of||yes, e.g. Handlebars||yes|
|Parallelism and distribution||wide range of facilities for parallelism, maybe less distribution on multiple servers?||current implementations spawn a new process for each request, inside that no parallelism afaik||requests handled by the Node.js event loop which is non-blocking but unfair and starving. Inside WebSockets can be used||uses Node.js, but automates distribution|
… and now some explanations. Keep in mind that these are my research notes, I’m no expert (yet ;)).