Hi, I'm the author. You're right about the resemblance to CoffeeScript. I added some recognition at the bottom. Thanks for pointing it out, I just got the site up within the last hour so there are still finishing touches to be made.
I am curious about why didn't you just implement the CoffeeScript syntax outright? Learning just one syntax would make it easier for people wanting to deploy to JavaScript and to Lua.
Imagine that C on the PDP-11 had a slightly different syntax from C on x86, and the syntax were different from that on C on ARM, etc.
Wow, yeah. I wouldn't complain personally, since I love CoffeeScript syntax, but it is pretty odd that it's not mentioned at all. Edit: As seen above, it's mentioned now, so I'm happy :)
It's still a little irritating that they've changed things that CS handles quite elegantly to be less expressive, presumably just out of a desire to be different. I understand changes to the syntax are necessary for various reasons, but something like ! for argumentless function calls instead of () just seems like needless divergence. Was that extra character really killing you? Is the confusion with other meanings of ! really worth it?
Indeed. It also saddens me that it does not stick to CS conventions - lots of extra cruft ( the ! for zero-arity method invocation -- instead # for comments etc )
Are you actually claiming that "#" is a computer science convention for comments? It's not used in C, C++, Fortran, Lua, or many other languages. For example, comments in OCaml are ( * ... * ) (I've put extra spaces to thwart HN's formatting.
Language using "--" for comments include Lua and Haskell.
You've made me curious - what languages to you use/know that make you think "#" is a "CS convention" for comments?
Further edit: In response to the clarification that CS meant CoffeeScript and not Computer Science (nor the riot control gas), the point, I guess, then follows other commentators, who observe that Lua, to which this compiles, uses "--".
But you're after the right point— the languages are bash, Perl, Python, Ruby. It's a scripting language convention, hence why CoffeeScript adopted it over JavaScript's `//`, hence the confusion as to why MoonScript didn't.
Edit: happily, an attribution has now been added at the bottom, as noted in child comments.