So is there ever a case for J2EE?
There’s definitely a case, but I think it’s misguided for the majority of cases. Most people vastly over-estimate the importance of their application. They vastly over-estimate how much of a snowflake they really are. Once people realise that they’re just putting out another web application, then they can use tools that are just more productive. If you need to do very advanced legacy integration with mainframes and stuff like that, then Java and the J2EE platform is great. If you need to make just another web application, like most people do most of the time, then in my opinion J2EE is a horrible choice.
One thing Hansson does not like is stored procedures.
Any kind of logic in the database is misguided unless your database is accessed by multiple independent applications. And that is true in some shops. They have logic in the database to protect it from being inconsistent, because they have a lot of different application developers who write applications straight to that database. I think that’s a bad architectural model though. If you are writing stored procedures you’re usually writing them in a place where it’s hard to revision track them, where it’s hard to test them, where it’s hard to figure out whether you’re doing this right or wrong, and where it’s also hard to move it somewhere else. I think that people instead should have one database per application, and if you need to share a database or share data, expose that as services. [Ed: as an ex-DBA, I find the implications of that last remark for duplicate data management a tad worrying, depending on how the “services” are implemented, I suppose]
We asked Hansson for some insight into the future of Rails. It turns out that he’s fighting to keep it small and simple.
We don’t want Rails to end up just like every other Framework. Given enough time they’ll add the kitchen sink. So we’ve slowed down the development of the core Rails framework, and started focusing on other things.
He mentions Switchtower, a deployment tool; and Gauge, for system monitoring. But isn’t there pressure to extend Rails itself?
We get lots of pressure to do that. One way we’re fighting back is that we’ve added a plug-in architecture. When you make something as a plug-in, it feels just like Rails code. So you can change anything in Rails by making a plug-in. And that’s really Ruby helping out, because it’s so dynamic. That’s a way to push back and say we don’t need everything in the framework. The only things we want in a framework is what most people do the same most of the time. There’re lots of things where some people do the same things some of the time, and that’s not a good fit for what should be in the core part of Rails.®