The [DHH keynote](http://blog.scribestudio.com/articles/2006/07/09/david-heinemeier-hansson-railsconf-2006-keynote-address) and the subsequent conversations like Martin Fowler’s article on [enterprise rails](http://martinfowler.com/bliki/EnterpriseRails.html) may well turn out to be defining moments in the crystalization of what will become the new enterprise. David talked about the Enterprisey as the real world, and then said that the real world may not be such a great place. Why not invite them to come to [utopia](http://www.rubyonrails.org) instead? In a nutshell, the theme is Screw evolution. We are revolution.
Too bold?
————-
So, what do you do with a benevolent dictator who wants to shoot the bird at the [enterprisey](http://en.wikipedia.org/wiki/Enterprisey)? What if they want to give me money? Is it dirty money? Even if it is, can I afford to turn up my nose? In some ways, my latest book [From Java to Ruby](http://pragmaticprogrammer.com/titles/fr_j2r/index.html) is my version of shooting the bird at the enterprisey. Developers knew that Rails rocks, but managers still don’t yet know. My fundamental points in the whole book are that
- Productivity rules. Everything else is secondary.
- In most places, Ruby is good enough today for the enterprise.
- Java, like every other major successful programming language, is bloated, and complex, and fundamentally out of control.
- The risk/reward equation is increasingly slanting toward Ruby, and effective pilot strategies can further mitigate your risk.
So, as we prepared the back cover copy for the book, I looked for a slogan to describe these thoughts. I came up with Welcome to the revolution. You see, in this case, starting from scratch with Rails is exactly what is needed. We need a new programming language with less waste and more leverage. We need to let our craftsmen work with sharp tools, rather than protect them from themselves. We need to rethink long-standing axioms, like
- Code is expensive, but configuration is basically free.
- Mind-numbing repetition is OK, as long as frameworks, IDEs or code generators shield you from the repetition.
- Corollary: Tools are more important than having a foundation that does not need them as much.
- Your vendor always has your best interests in mind.
- Corollary: Your vendor will come to save you.
- Programmers are pluggable resources.
- The [next](http://en.wikipedia.org/wiki/Distributed_Computing_Environment) [enterprisey framework](http://en.wikipedia.org/wiki/EJB) [will get](http://en.wikipedia.org/wiki/web_service) [it right](http://en.wikipedia.org/wiki/model-driven_architecture).
Who can play?
——————-
So here’s the thing. If you believe that there’s a better way to skin this beast, and revolution is the means, then you’ve fundamentally got to ask yourself who can play? At what point do you turn them away? I’ve got to confess that in my world, “Them” means “paying customers”. So I’m not going to be shaking off a project just because they have composite keys. Of course, pragmatic Dave Thomas mentioned that the Rails community needs to fill some needs to take the next step. DHH countered with his “The real world sucks” keynote.
But the opinions are fundamentally compatible. Rails does not need to add core support to stuff against the core philosophy. But rBatis, a wrapping framework in the spirit of Java’s iBATIS, is a brilliant Ruby extension that realistically has no chance of fully supplanting Active Record, but scratches an itch (scratches a niche?). Prag Dave was fundamentally challenging the Rails community to solve a problem that would enable Ruby, and Rails by extension, for perhaps the ultimate set of CRUD customers. DHH was calling to maintain the purity that keeps base Rails so special.
The charge
—————
If you want to come to Utopia, you’ve got to build yourself a bridge. Or, share one of many under production. Streamlined enables [enterprise](http://streamlined.relevancellc.com) scaffolding. [rBatis](http://jutopia.tirsen.com/articles/2006/05/25/mailing-list-for-rbatis) enables legacy schemas.
With Ruby, you really can expect to build that missing bit of core infrastructure that will let you play along. I’ve hooked into a customer’s private communications infrastructure to enable a Rails project, and will also look at doing similar infrastructure to bid another Rails-enabled project. Others have built database drivers, or reporting packages. If you want to come to Utopia, don’t expect DHH to build your bridge for you. And don’t wander around wailing and gnashing your teeth. Just buy, build, or do whatever you need to do. The real world does suck, and the weather’s great here.
And welcome to the revolution.