4 ms·
The only differences from literate coffeescript[0] I see from this demo are that the var keyword is back and print is a macro for console.log. I applaud you fo
by switz 13y ago
The only differences from literate coffeescript[0] I see from this demo are that the var keyword is back and print is a macro for console.log.
I applaud you for building something cool, but what are the "huge advantages" that you laud in the title?
[0] http://ashkenas.com/literate-coffeescript/ http://ashkenas.com/literate-coffeescript/
- lucio 13y ago1. There's a compiler validation phase, it guess types from definitions and assignments, and will caught typos in object properties, saving hours of debugging subtle bugs. 2. No callback hell while keeping async programming ("yield until", node.js --harmony)
- peq 13y agoHow does the type guessing and the type system in general work?
- lucio 13y ago1. Type guessing: - if you have a "class Token" and later do "var token", the type is guessed by name affinity. - if you do: token = .getToken() other = token the type of "other" is guessed from assignment (:Token) 2. Type annotations: you directly state type var other:Token var read: Token array The compiler does a "pseudo-execution" of the AST, guessing types and validating property access.
- ulisesrmzroche 13y agoDoes this depend on using --harmony? Or are you faking the generators?
- lucio 13y agotoday it depends on --harmony (only for "yield"), but it is trivial to add an option to use node-fibers instead (same functionality of ES6-generators for node>=v0.8). See https://github.com/luciotato/waitfor https://github.com/luciotato/waitfor ,node-fibers, and the same with generators: https://github.com/luciotato/waitfor-ES6 https://github.com/luciotato/waitfor-ES6
- ulisesrmzroche 13y agoIt's good that it's not faking generators though, stick with harmony. Fakes slow to a crawl after a while.
- bliker 13y agoI did not know about Literate Coffescript. Thanks! But I must say I found this link more informative http://coffeescript.org/#literate http://coffeescript.org/#literate
- lucio 13y agoThe compiler is PEG-based, very easy to extend. Check the grammar: https://github.com/luciotato/LiteScript/blob/master/source/Grammar.lite.md https://github.com/luciotato/LiteScript/blob/master/source/G...
- mistercow 13y ago>The only differences from literate coffeescript[0] I see from this demo are that the var keyword is back and print is a macro for console.log. It has more than that. Check the buttons down at the bottom. It has switch statements that look for a true expression, preprocessor macros, sugar for appending to classes (like Objective-C's categories), sugar for shimming, and "nice functions" for avoiding callback hell. That's a lot more than you get with literate CoffeeScript.