| Are there more code snippets that the "chat" one ? From my (very shallow) understanding/guessing this provides: 1) statically typed records with some high level web-friendly types (automatically serializable to json). There is a "User" type, I wonder if there is a UserString one. 2) a purely functionnal core. "Mutation" with operator "+=" is available only in handlers, so it seems there should be a monadic type underneath for transactions. 3) XML litterals are first class primives, even more integrated than in scala, etc... 4) Relational queries are first class primitives (in the video). Is it typed for them to correspond to the sql schema ? 5) It is reactive (in the FRP sense). "messages.map(renderMessage)" updates the page fragment automatically as messages appear, message[] is a stream with push semantics. Those are very good points, and I think the web should be programmed somewhat like this. It reminds me a lot ideas in Ur/web (http://www.impredicative.com/ur/), with a more web-developper friendly syntax and less academic presentation, but I don't know if the static garanties are as strong (record types). An obvious question is : what about deployment ? (is it compiled ?) |
The code is compiled into javascript, and the whole server side is actually written in javascript.
See more at http://www.quora.com/Server-Side-JavaScript/Does-Asana-use-s... and http://asana.com/blog/?p=21