While I have your attention, I have a few bits of information! :) I'd like to thank everyone who has submitted a talk proposal for the conference - it's going to be a real challenge to pare down the selection to the ones that we can fit in. I'll be trying to sort this out over the next week or two, so please bear with me if you are waiting!
A couple of people have asked me very nicely if it is too late to submit a proposal. If you want to try, please do, spots might become available depending on speaker circumstances, etc.
But, enough of that for now, here is the latest chat with one of our conference speakers: Yehuda Katz, member of the core teams for Rails and jQuery, lead developer of the Merb project, core contributor to DataMapper contributor to Rubinius and Johnson, creator of Thor, Moneta.....:
MC: Firstly, Many thanks for taking the time to chat! I know you're very busy. Could you tell us a bit about yourself, and what you are spending your time on at the moment?
YK: Sure. My main focus at the moment is continuing work on Rails 3. At the moment, that involves significant refactoring of ActionController and ActionView. We've made significant progress, and are already seeing architectural benefits from the improvements. In my spare time, I'm currently working on Moneta (a key/value store abstraction) and improving Rubygems (with better gem resolution, lower start-up costs, and bundling). I also have been sinking some time into JRuby, which is proving to be a very stable, fast and reasonably agile alternative Ruby implementation.
MC: Rails 3 is generating a lot of excitement. What changes do you think will make the biggest difference to developers?
YK: For power users and plugin developers, the internals of Rails have become significantly improved, and it's now possible to make many more kinds of changes to Rails without invasive monkey-patching or real patching. This includes things like overriding the controller's rendering system, swapping out template backends, and having configuration options scoped to an application instance rather than globally.
For application developers, we will be able to leverage those architectural improvements to create interesting features. This includes improving engines, bringing ActionMailer in line with ActionController, a new Queue system baked into Rails, more flexible and powerful routing, and easier integration with the world of Rack components.
MC: So, there are many changes that will allow functionality and applications to be plug-able. Do you think the focus of rails development will shift from the core to the efforts of the wider community?
YK: There will be two parallel results. First, the Rails core will focus more effort on making sure that the core of Rails both remains an excellent set of defaults for users building web apps *and* becomes a viable backbone for other kinds of interesting work. This requires intense work in the core of Rails itself, and will need to continue even after Rails 3 is shipped as we move forward. Second, I personally anticipate more community activity around leveraging those new capabilities. So it's not so much a focus shift from Rails to the community as it is a renaissance of efforts on both fronts.
MC: I was going to ask specifically about what is in store for rails after 3.0... There seems to be a hint there that you may be looking at rails in a broader context than just web apps?
YK: Rails is certainly going to become potentially more useful in the context of all HTTP applications (not just HTML), but I don't see it moving outside the realm of HTTP at all. The great thing about Ruby is that it's very easy to make code interoperate; for instance, Sinatra is excellent for taking an existing Ruby project and exposing it to the web. I think it makes sense for Ruby projects to be as good as possible in their own spaces without trying to become too generic.
MC: So have you got any other clues about the sort of changes that might be in store after rails 3? How is the development timeline decided upon, and what sort of timescales into the future does the core team look into?
YK: It's hard to say at this point, but what should be clear is that Rails 3 is just the first fruits of the reinvigorated work on the core of Rails. We have four very exciting Google Summer of Code projects, some of which might make it into a 3.x version of Rails (although I hope they all make it into Rails 3). My personal expectation is that Rails 3.x will be driven, as usual, by the needs of the community, which will now be somewhat focused around the new integration points we make available starting with Rails 3.
In terms of timeline, we're trying to release as soon as possible, without waiting for a mythical perfect release, but we definitely need to get the integration points stable to deliver on the promise of a stable plugin API.
MC: Thanks, I'm really looking forward to trying out the new features... One thing I'm really excited about is the stuff you talked about in the 'Russian Doll' talk... I've only managed to see the slides so far, though. This idea of plug-able applications looks like it could bring some huge benefits to developers.
YK: The Russian Doll stuff is really interesting, because the work that needs to go into Rails is really separate from the end feature we want to enable. In Rails, we need to add stuff like allowing multiple Rails applications in one process (via an application object), improve the system for pulling out templates off the file system or other locations, improved bootloader process, and a more robust and powerful router. Those features are pretty much unrelated to the idea of mountable applications, but will enable interested members of the Rails Core team and members of the community to build a working, standard system on top.
MC: You had some slides in that talk referencing Django... I think we have just enough time for one last question...What do you think rails can learn from other app frameworks like Django, and do you think the rails community is engaged enough with the wider community & 'the enterprise'? (I'm thinking of the message of Bob Martin's RailsConf keynote)
YK: The most interesting thing in Django is their embrace of multiple applications, as well as their built-in administrative "application". On the other hand, their grudging, slow support of WSGI (the inspiration for Ruby's Rack) is something Rails must be sure not to do. Thankfully, Rails' participation in the larger Rack community has been inspiring and transformative.
In terms of the enterprise, I certainly think this is something we need to do, but it will likely need to be driven by companies with some skin in the game. Bootstrapping that process is difficult when so many community members are refugees from that world, but I definitely anticipate efforts to engage the enterprise in a discussion about the benefits of Ruby coming from various avenues. I only hope that those efforts really sell the power of Ruby, and try to avoid encouraging people to write Java or .Net with Ruby syntax. There's much to be gained from fully embracing Ruby as a language, with its idioms and libraries.
MC: We're out of time! That was great - lots of food for thought there Thanks very much for taking time out to chat!
YK: No problem. It was great chatting with you.
There are a few more interviews planned, and you can find previous talks with Geoffrey Grosenbach, Maik Schmidt, and Dr Nic in the interviews section.