Posted over 2 years ago
Foreword I have decided to try out a self enforced twitter style character limit of 1000 words in an attempt to get some work done on the day I decide to write a blog post, if I exceed this limit you can write nasty things about me in the comments.
I am yet to try CoffeeScript so should have probably put off writing this post till I'm fully informed of the tool in question. However I fully intend on trying it over the next few weeks (most likely on this site) and posting about my experience, the before and after.
It's important to try out new technologies as they enter the picture and at present the web is prime focus for the release of stylish new tools. In the case of CoffeeScript it has been bumped up the ṕriority list of many developers due to the decision to ship it with rails along with jQuery and sass. The developers behind Rails have a responsibility to promote quality technologies as usage of these technologies will rapidly increase with there inclusion (So don't adopt haml)
Rails has always been a framework of conventions, in fact one of the Rails philosophies is convention over configuration most rails developers know this is and this is why they like it. The people who know the framework best provide what they think are the best methods for working with it, thus reducing time spent deciding, setting up and understanding how best to use the framework. It works and as long as the selection of conventions is of the liking of the majority developers it will continue to work. It was a suprise to me that Rails took so long to adopt jQuery as this seemed to be the defacto choice for js frameworks since Rails 2 gathered pace.
CoffeeScript creates controversy because it is language ontop of language, it abstracts developers away from what most see as an exciting and improving language and in doing so requires developers to learn a new syntax.
Perhaps more awkward for Rails developers but less discussed is the introduction of sass (used on this site) as the CSS extension language. less was gaining popularity and Rails developers will now be presented with the question, Should they go against convention or convert to sass.
Response by the developers behind Rails to all this is; You can switch it off however if rails started including technologies that weren't used as convention or shipped with many choices the philosophy will break down and the allure of rails will reduce.
Inspite of all this I am very much in favour of this sort of activity, it is a demonstration of Rails' flexibility despite it's wide adoption, which has been the downfall of many other frameworks and languages I have used. I like the Rails concept, if CoffeScript is a flop they can replace it like they have done the Prototype library (however if the community is more split than they were with the js framework it becomes less simple). The creater, David Heinemeier Hansson tweeted most eloquently, Here's the Rails gospel: Promote good ideas and technologies: See Ajax, Rest, Atom and testing, Rails is a curated set of tech choices.