Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It's very gratifying to see how overwhelmingly the comments are both positive and in disagreement with Michael's blog post.

If you'd like to see the most complete explanation of why CoffeeScript is all about working with and embracing JavaScript -- not giving up on it -- the best resource is probably Brendan Eich's and my joint talk at this year's JSConf:

http://blip.tv/jsconf/jsconf2011-jeremy-ashkenas-5258082

But the other interesting thing here is how many of the comments point to the fact that most people who write posts about fears of CoffeeScript have never actually tried it. Having experienced a good deal of this myself, I have a pet theory about why this is the case...

First, the caveat that CoffeeScript is just a fun little thought experiment: I have no vested interest in whether you use it or avoid it for your project -- whatever suits you best.

Most esoteric programming languages are non-threatening. As a hypothetical programmer working on web applications, I can feel safe and comfortable in my ignorance of Haskell, Erlang, D, Io, Arc, and so on. They're far enough outside of the realm of possibility of adoption for my company that I can shrug them off with an "oh, that sounds interesting", and little more. Wanting to adopt one of them would require a whole new development and deployment stack, a new or ported codebase, and new integration costs with the rest of our system. You wouldn't expect to see an article talking about how people using Erlang are creating a "knowledge gap" for Java programmers.

CoffeeScript feels threatening precisely because it is so close to JavaScript, because the code can run with identical performance as hand-optimized JS anywhere that JavaScript can run, because any CoffeeScript library can interoperate seamlessly with any JavaScript library, and vice versa. It forces you, as a reasonable JavaScript programmer, to answer the harder question: Why haven't you tried it yet? Posts like these happen when folks try to rationalize an answer for themselves.



Why haven't you tried it yet?

I have tried it, and I love it (same goes for Backbone and Underscore, by the way - you are the developer who's work has impacted me the most positively in the past year) but I haven't used it for anything serious yet, and here's why: the workflow is more complicated than "make change, refresh". Until very recently, my programming time was split about equally between the three major operating systems (I have since managed to phase out Windows almost entirely) and it's way more trouble than it's worth to set each of them to autocompile changes to .coffees. I know that I could import the compiler and use script type="text/coffeescript", I know about LiveReload for Mac (even though I couldn't get it working in the few minutes I tried it) but the bottom line is that I already know how to write Javascript, and it works great. Learning a new language is the sort of thing I like doing, but wasting time futzing around with build systems is not.

Anyway, I didn't mean to rant. I could easily love CoffeeScript - I don't feel threatened by it a bit. But there are some serious barriers to adoption, and Javascript isn't nearly painful enough for me to deal with them.


If that's truly all that's stopping you, try out Middleman (http://middlemanapp.com/) or my own Draughtsman (https://github.com/stdbrouw/draughtsman). Taking two minutes to install an app hopefully does not constitute "wasting time futzing around with build systems" :-)

Also, I think your problem is very particular to front-end devs and designers-that-code. If you're already doing back-end in your framework of choice, adding CoffeeScript or any kind of precompilation into the mix is usually just a one-liner in a config file away.


Cool, I will take a look!

And not every back-end dev is lucky enough to be working in their framework of choice ;) (I would actually call myself more of a front-end guy, but I do plenty of back-end work and the only time I get to use frameworks I enjoy - Django, Flask, etc - is for my side projects.)


I'm heavily using CS for my new business and I absolutely love it. I can't thank you enough for being brilliant enough to create it.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: