Ruby on Rails 3.1 has been released. As well as the usual round of bug fixes, the latest version of the ever-popular web development framework has seen a few controversial features added (controversial amongst web developers at least):
- New default libraries
- HTTP streaming
- Assets pipeline
- Reversible migrations
- New minimum Ruby language requirement
jQuery, CoffeeScript and Sass are now default libraries. Whilst jQuery is now the de facto standard Javascript library for browser-side coding, the inclusion of CoffeeScript is more controversial – there will be gnashing of teeth amongst some Javascript purists at the default use of this language that compiles into Javascript. Sass generates CSS using a flexible syntax and due to its vintage has greater traction in the development world.
HTTP streaming allows the browser to download stylesheets and JavaScript files whilst the server is still generating the response.
Asset pipeline is a framework to shrink assets such as Javascript and CSS prior to delivery to the browser.
Migrations is the Rails approach to updating the datastore with schema changes. Whilst Rails 3.1 will now attempt to figure out how to reverse those changes, if necessary, it’s not foolproof.
Rails 3.1 now requires at least Ruby 1.8.7 and ideally 1.9.2, if support for HTTP streaming is required.
Our view
With the twin philosophies of opinionated software and convention over configuration permeating the Ruby on Rails framework, it should come as no surprise to developers when new features are designated from above rather than discussed at length prior to inclusion.