> that's why I'm considering playing with coffee-script/node.js next
Yes. That's where I'm at.
I think CoffeeScript is wonderful. If only it had macros we'd be set. I've made a bit of progress on that front (i.e. https://github.com/evanrmurphy/SweetScript) and will post about it soon.
It's a port of metalua (https://github.com/fab13n/metalua), a macro + syntax extension system for Lua. Given that CS's grammar is more exuberant than Lua's, the parser combinator library that supports runtime syntax extension requires much more work.
> I think CoffeeScript is wonderful. If only it had macros we'd be set.
It is.
I'm not sure about macros, but having something similar to s-expressions would be nice.
The only thing still kinda holding me back is html templating. Doing them in {{ templates }} like that was a horrible experience with Django. Jinja2 made it a bit more bearable, but {% endtag %} kind of stuff is still bad.
> what do you see as the main benefit of s-expressions besides macros?
For this specific problem (html generation), the advantage of s-expressions is you can build a tree with it, with minimum boilerplate. For example, the closing tag is just a ')'. Also, again for this specific problem, because we're mostly just generating strings, just having functions would probably suffice.