
CoffeeScript2 - A Redesign of the CoffeeScript Compiler - netbyte
https://github.com/michaelficarra/CoffeeScript2
======
pistoriusp
I don't think it's fair that he should be allowed to use the name
"CoffeeScript 2."

I feel that it implies that it's an official project, but it's actually a re-
implementation and separate project.

And if they're not backwards compatible it could lead to a ton of confusion
and a fragmented language.

I think if you want your own project then you should at the very least get
your own name.

~~~
michaelficarra
Fear not. The re-implementation will be completely backwards compatible. It
just a smoother compilation pipeline, and adds some output configurability.
But regardless, Jeremy and I have decided it would be best to change the name.

~~~
jQueryIsAwesome
I will suggest a few alternatives: Winescript, Caffèscript, Browniscript,
Shortscript and Rubyscript.

~~~
michaelficarra
The names I suggested were "CoffeeScript: Reloaded", "CoffeeScript Episode II:
Attack of the Clones", "The CoffeeScript Supremacy", and "Live Free or
CoffeeScript Hard". Technically, right now it's "CoffeeScript II: The Wrath of
Khan". Jeremy suggested CoffeeScript Redux. That's probably the best choice,
though a little boring.

~~~
YmMot
> "Live Free or CoffeeScript Hard".

That would be the fourth version of CoffeeScript. The 2nd version would be
"CoffeeScript 2: Script Harder" which is much more awesome.

------
jashkenas
Very much looking forward to seeing how this turns out. To view a list of some
of the public-facing things Michael wants to change, take a look here:

<https://github.com/michaelficarra/coffee-of-my-dreams>

~~~
TazeTSchnitzel
He wants to remove semicolons except where absolutely necessary?

Is he nuts? The compiled output shouldn't be relying on an error-correction
feature. Especially since it might break minifiers and validators.

~~~
ajross
I recognize the minifier significance. But wait, there are validators (!?)
that choke on valid (!) syntax?

~~~
mistercow
Also, any minifier that turns valid javascript into invalid javascript is
broken, full stop.

~~~
ajross
Yes yes, but some do, it was a giant flame war, and I'll admit that it can be
a practical issue (if not a correctness one) for javascript to rely on
automatic semicolon insertion if it means you can't use your minifier of
choice.

But trying to use a "validator" that validates a languages other than the one
you are writing is just plain insane.

------
sirclueless
Forgive me for being skeptical, but it seems to me that CoffeeScript is going
the way of Lisp: a language by hackers for hackers, with way too many
incompatible implementations because each implementer has their own pet
features that must be included.

~~~
jashkenas
Whoops -- I think you're missing a big part of the point of compiling into
"standard" JavaScript. Not only is CoffeeScript code fully compatible with any
JS library ... it's also compatible with code generated by any version of the
compiler, and with code generated by alterna-compilers like Coco, and
eventually this project as well. The semantic compatibility exists at the
"plain 'ol" JS level.

~~~
streptomycin
That only solves part of the problem. It's still a big pain to have different
syntax dialects and different tools that have to be used for different
projects that are ostensibly written with the same language, even if they are
compatible after you compile them to JS.

------
pbiggar
The phrase "proper compiler-design principles" really gets on my nerves for
some reason. It instantly makes me doubt the ability of the person saying it.
It seems to say "I've heard of Lex/Yacc and once glanced at the Dragon Book".

Anyway, I gather the OP is a coffeescript core contributor, so my default
opinion is probably wrong in this case, hopefully.

------
tferris
This and nine more CoffeeScript derivates* from people who rather like to
fragment a landscape with marginal improvements instead of supporting the
leading pack are the reasons that CoffeScript hasn't reach critical mass and
will fail as a standard.

* [https://github.com/jashkenas/coffee-script/wiki/List-of-lang...](https://github.com/jashkenas/coffee-script/wiki/List-of-languages-that-compile-to-JS)

~~~
johnfn
CoffeeScript hasn't attained critical mass? It's the 10th most popular
language on github[1], over a decade younger than all the other contenders,
and growing quickly.

Even if CoffeeScript was as niche as you argue, I'm not convinced that that
would have any bearing on its success. CoffeeScript doesn't need a wide
community to achieve success because it compiles to and is completely
interoperable with JavaScript, the most popular programming language.

[1]: <https://github.com/languages>

~~~
tferris
Regarding the front end side the CoffeeScript adoption is high and mainly
driven by Rails but if you look at the back end it's different: CoffeeScript
could not established with Node (most npm packages are in plain JS) and mixing
Coffee and JS on the backend does not really work out (it's possible though).

------
desireco42
I am ok with anything @jashkenas blesses.

Thanks Groupon and others for supporting this, I would agree with commenters
that name is confusing.

------
kristianp
Here is a relevant groupon blog post:
[https://engineering.groupon.com/2012/javascript/looking-
forw...](https://engineering.groupon.com/2012/javascript/looking-forward-to-
an-interesting-summer/)

How about multiple backend support? Perhaps then someone could add a dart or
NaCl backend.

~~~
almost
CoffeeScript relies heavily on the underlying JavaScript semantics (which is
one of the main reasons it's so useful: It's Just JavaScript) so other
backends would most likely be a lot harder to do than the JS one.

------
rjd
So... I hope this isn't the future of updates to open source projects... crowd
fund us or we won't do it... starting to see a pattern projects using this
technique (albeit none are out rightly saying them won't its just implied)...
not sure its a healthy development myself.

~~~
tinco
It is an excellent development. It means developers can finally start to live
from _independent_ open source development. This is not and never will be a
replacement for hobby opensource, because that is done by developers who just
want to do it, it would not make sense for them to threaten to not do it if we
don't give them money. This is for the people who contribute to opensource,
but also have a day job developing low-impact closed source commercial
software, who don't have time or energy for large refactorings and rewrites.

"Crowd fund us or we won't do it" sure is a lot better than "We won't do it".

------
emp_
When I saw the empty repo (just with the README) and before reading the
kickstarter page or comments here, I thought it was another vapor.js-like joke
as a compliment to the original compiler, which IMO does it very well.

------
chime
This looks like a great project. Wish I would have known about the Kickstarter
campaign for it sooner. Can't wait to try it out.

