I know it but TameJS/IcedCoffeeScript came after streamline (I released streamline in January 2011, 5 months before tameJS). We were already using streamline heavily in our project when tameJS came out.
Last time I looked at IcedCoffeeScript, it had limited support for await/defer in subexpressions, it did not support exception handling constructs (try/catch, try/finally), it did not trampoline, etc. (except for the trampoline, streamline had these features from day 1). Also, streamline supports 3 transformation modes: callbacks, fibers and generators. I recently looked at the tame paper and I was not overly impressed: the AST transform that it describes corresponds to streamline's basic transformation patterns but streamline uses a lot more patterns (see http://bjouhier.wordpress.com/2011/05/24/yield-resume-vs-asynchronous-callbacks/). My goal with streamline was to handle 100% of JavaScript, not a subset. Streamline's syntax receives a lot of criticisms. I could have used a keyword ('wait' was a good candidate) instead of _ but I wanted a discrete (yet visible) marker that was unlikely to collide with variable or function names. This is why I chose _ (unfortunately I had missed the cool underscore library at the time). But I don't see any advantage in replacing _ with a pair of await/defer keyword, at least if we set aside considerations of taste. Consider the following: composition: f1(_, f2(_, f3(_, a))) operators: f1(_, a) + 2 * f2(_, b) / f3 (_, c) f1(_, a) || f2(_, b) || f3 (_, c) initializers { p1: f1(_, a), p2: f2(_, b) } [ f1(_, a), f2(_, a), f3(_, c) ] chaining: f1(_, a).f2(_, b).f3(_, c) arbitrary combination of the above How would you write these with defer/await keywords? To me, the keywords won't help. Instead, they will "get in the way". Bruno On Thursday, August 23, 2012 10:43:49 PM UTC+2, Stuart Carnie wrote: > > Bruno, > > Have you experimented with IcedCoffeeScript? The await / defer syntax is > just great. > > Cheers, > > Stuart > -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
