Thursday, January 6, 2005

Road Map: The rails leading to 1.0

Posted by admin

Rails is already an incredibly capable environment, but we’re still not quite ready to slap on the 1.0 sticker according to my own standards for that label. So what’s missing? Here’s a list of the major achievements that I want to see happen before we go to the big one-o:

  • Directions: While its fully possible to do intricate custom URL layouts, its not as easy as it could be. The combination of mod_rewrite going in and the hoops you need to jump going out ensures that most people just stick with the defaults. Directions is the path that’ll rectify that by pulling URL rewriting into Rails, so WEBrick and Apache will share the same format and it’ll be possible to handle both in and out in a coherent fashion. Nicholas Seckar is leading a development effort guided by a design from Dave Thomas.
  • Packaging: Instiki has had great success with the OS X native .app format. We want to enable all Rails applications to have push-button package outputs to .app, .exe, and one-file scripts for the rest of ‘nix. The rise of SQLite3 will make this even easier (thanks to Jeremy Kemper for the adapter and Jamis Buck for the bindings) to have self-contained applications. Marcel Molina is leading the development on the one-file scripts that’ll serve as the foundation for the native compilations.
  • Web Service Dispatcher: XML-RPC and SOAP could easily be supported by the same controllers and models as the rest of the application if the calls were translated into controller calls. That’s what the new WebServiceDispatchers will do.
  • Caching & Performance: One of the easiest ways to deal with performance is to start caching, so that’s what we’ll do. There’s a lot of different schemes to pursue and that’s exactly what we’ll do. From full-page caching that sidesteps Rails to per-request model caching to integration with MemCached. Lots of opportunities to take what’s already there and make it much faster with a bit of sprinkled caching. Getting a good benchmarking suite together is part of that. Florian Weber has promised us the later since 0.7, so he expect a delivery any day now :)
  • Documentation: I really do need to fulfill my obligation to renew the introduction video and accompany it with more. On top of that, we’ll need to start the long rumored Rails User Manual. We’re already off to a fantastic start, though, with great API documentation and quite a few guides and tutorials. The last push will round off the polished feel a lot, though.

Five major areas of improvement. I hope we’re able to reach all of these goals by mid February or early March. But there’s no inherent pressure. We’ll continue to release updates at the current staggering rate and when its ready to ring the bell of 1.0, we’ll ring the bell.