I had a project that was almost entirely JavaScript come up with a decent timeline on it. Not to be one to have a completely uninformed opinion I decided that this would be an appropriate time to actually use CoffeScript and find out whether it was worth it.

By way of background I have been a Ruby and JavaScript developer for several years. I'm openly biased against indentation delimited languages, simply because I find them annoying to work in and this has so far caused me to avoid using CoffeeScript for much of anything beyond hello world.

The following are the highlights of just over two weeks of intense development, all of the JavaScript was written in CoffeeScript. ... (continued)

This was all well and good until we started looking at runtimes in our controller actions. 34% of runtime was spent parsing YAML.

Experimenting a little, I ran the following test which revealed that JSON.load is two orders of magnitude faster than YAML.load at simple hashes.

This was a shocking result to me, but as I thought about it I realized that YAML exists to store more than just simple hashes, whereas that is all that JSON can do.

It would seem that switching data over from the default YAML to JSON is quite simple.

The problem comes when you have existing data YAML encoded.

I fixed this with a rake task which creates a fake model to avoid other model configurations, validations and automagics and simple parses the YAML and encodes it to JSON. It may not be necessary to create the fake model in the general case, however in my situation where my model is very complicated and doing many different things it was easier to simply eliminate everything.