The Asset Pipeline and Rails 3.1’s Post-Modern (Post-Apocalyptic?) Present

My Twitter stream is abuzz today with the release of Rails 3.1. (You can view the Rails 3.1 Release Notes here). But of course, as the Rails community is comprised of an alarming level of passionate developers, a few diva-style outbursts are in the forecast. Though most of the responses are celebratory there are pockets of people reacting as though they are 5 years old and being forced to eat lima beans by their mothers. But unlike your mother, the Rails Core team isn’t forcing you to eat anything. In fact, those who oppose the addition of CoffeeScript and SCSS can circumvent the changes in one step.

Most of the outcry was unleashed when DHH announced in April that CoffeeScript and SCSS would ship with Rails 3.1. CoffeeScript is a whitespace sensitive and expressive language that generates readable JavaScript code. SCSS is the new Sass syntax, and is an extension of CSS3. People have had some time to adjust to the idea since the announcement was made, but that hasn’t stopped a vocal few from throwing a temper tantrum about it today. People can argue about its inclusion in Rails 3.1 for the next year (and they will) but what really matters is that the Rails contributors continue to identify and implement libraries and tools that advance Rails and make it more accessible.

Rails 3.1.0 introduces many changes, most of them widely anticipated by the community. The addition of jQuery was one of them and replaces Prototype as the default JavaScript library. jQuery was a crowd favorite since Prototype was more verbose and required the developer to keep track of more variable types. jQuery is more concise and most of its users boast a faster and more pleasant development experience. The addition of CoffeeScript and SCSS though, was not so widely celebrated.

Brent Collier, one of our Senior Engineers was put off by the growing negativity about the Rails 3.1 changes in his Twitter stream:

I don’t understand the people complaining about the asset pipeline in Rails 3.1. I mean, if you don’t like Sass/CoffeeScript, that’s fine. You can still write normal CSS/JS. The only difference is that it goes in app/assets instead of public. It doesn’t require devs to do anything different, other than putting files in a different directory. Yeah, 3.1 includes sass-rails and coffee-rails by default. If that ruins your day, you’ve got bigger problems.”

Michael Bleigh feels that in debating CoffeeScript and SCSS in Rails 3.1 we’re forgetting the important truth, which is that the asset pipeline is simply amazing:

Forget the drama about SCSS and CoffeeScript, the real story here is that Javascript and CSS are now first-class citizens in a Rails application. The ability to seamlessly integrate asset files from gems is going to change everything about how we build Rails applications.

Before the asset pipeline was announced, I was getting worried about the future of Rails. I saw that the future was to have much richer client-side language support, and Rails didn’t necessarily do much to make that easier. Now I can’t imagine using anything but Rails for a modern web app. As far as I’m concerned what Rails has done with the pipeline is a huge and important step towards keeping Rails on top for years to come.

Not liking SASS and Coffeescript just seems so pale in comparison to the awesome of first-class assets that I don’t even know what to say.

Fortunately, despite some pockets of angry tweets, most people are expressing their gratitude to the Rails 3 team for their hard work. You can follow the stream of Rails 3.1 related tweets here.

Although we tend to be overly opinionated about our methodologies and tools, we’re also adept at putting aside our differences in the spirit of ushering in intelligent progress. Today we’re #rubythankful to the dedication of the Rails contributors who have worked diligently to make Rails the competitive framework that it is today. As Ruby and Rails devs our programming livelihood depends on Rails’ ability to stay competitive and relevant in today’s world. So we’re offering a big thank you to those who have helped to support the language, the framework, the assets, and the community.

Maggie, our QA Manager recalls a chant her Mom would lead at the lunch table in her daycare when the kids turned up their noses at the food:




All together now…