Hacker News new | comments | show | ask | jobs | submit login

You can get modules right now, in every browser, with CoffeeScript. It compiles nicely to standard JS:

http://coffeescript.org




CoffeeScript does many things at the language level, but modules is not one of them.


Maybe in 0.8 or 0.9, Jeremy? ;-) It could "solve" the "problem" of wrapping compiled code in anonymous functions and having to attach exports to `window`.


Ah, but all of your compiled code is already wrapped in a safety function. (perhaps that's what Trevor was referring to). As for attaching to exports or window, that's going to have to be something that you do by hand regardless. If everything is added to the exports, then there's no point in wrapping in the first place...


Well, what I'd like to do is have e.g.

mymodule.coffee:

    x: 5
    y: (z) -> z * z
main.coffee:

    load("mymodule")
    puts mymodule.y(5)
I could set this up manually, of course, but if I wanted to do things manually I wouldn't be using CoffeeScript. :p


Yes, I meant that the JavaScript "module pattern" is implemented by default, and the language prevents you from declaring globals by mistake. So, you get most of the benefits of the proposed JS module syntax.


I'm a big fan of CS, but I wasn't aware it has module support. Are you talking about the class system?


Sorry, I should've been clearer: I meant that CoffeeScript gives you the safety benefits of modules, just by breaking your code into separate .coffee files (unless you use '--no-wrap'), since variables aren't shared unless explicitly exported.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact

Search: