Some people seem to think you're crazy for not supporting that kind of stuff — in general, what is your take on what's important and what isn't where it comes to the backend?
Before I was frank, now let me be blunt: I don't care about you. I am not a vendor. I don't work on Rails to please other people, I work on it to please me. That's the beauty of open source. I'm free to make technology choices unrestricted by legacy or ill-advised customers. If you don't "buy" Rails, it's no skin off my back. There are plenty of people who do buy it because they share the priorities presented. Despite how it may some times appear, I'm not out to save the world. And I'm not out to save you.

So if labelling me "crazy" helps you ignore the disruptions Rails is bringing to the table, I say go for it. Maybe that's an accurate label for me in the current situation you're in. And if there's no interest or ability to get out of that situation, it's probably best to write me and Rails off as crazy such that you can head into work with a smile tomorrow. Motivation and happiness are the real productivity powers anyway.

Regarding the specifics, it's no secret that I'm not a big fan of logic in the database. I don't think the database is an appropriate place to maintain a coherent domain model. And I don't think you should integrate multiple applications through the database.

So if you follow that and shield your database from access of multiple applications, you can move all of that logic you would have put in stored procedures, triggers, and what have you into an object-oriented model that can take advantage of the last 20-plus years of progress in software-development techniques.

No, you can't just switch from a database-centric integration style to a service-based one overnight. So if you're currently working in a shop that integrates through the database, you'll likely call me "crazy" for not wanting to use these database logic tools. And that's okay, I'm not talking to you. I'm talking to someone who has the choice of how to structure their application and their future integration. And to them I say: Avoid logic in the database.

Are there any Rails-based products that particularly stand out to you?
There are a ton of them. I've been really pleased to see all the cool things Rails has been used for since its release. We got people using Rails for everything from social sites to mortgage applications to selling baby clothes to sending invoices to managing humanitarian efforts. I think Rails is represented in just about any Web application domain you can imagine.

But to highlight just one, I really like 43things.com. It's made by a group of ex-Amazonians with a mission to make the world a better place by helping people reach their goal in life. That's such a noble venture and the fact that they have more than 200,000 trying to reach their goals with the help of 43things.com is amazing.

One thing that distinguishes Rails is that it sets out to do something specific very well, rather than trying to be for everybody. What is the idea behind this approach? Why don't we see this idea more often?
Nobody likes to admit that they're not special, that their problem is the same mundane issue everyone else is dealing with too. People like to believe that they're a unique snowflake way more often than is healthy. So there's a great lure in thinking you need the same tools for your small-time book store as Amazon needs for managing their millions of books, but you don't. The tools that are great at solving the hardest problems in the world usually stink at solving what most people need most of the time.

And that's the sweet spot we're aiming for with Rails: What most people need most of the time. To get there we needed to realise that we too are not special. And that you can't abstract, extract, or generalise the truly special needs in any case, so you're better off leaving that to when you have the problem.

There are a few software projects coming along now that take a Rails-type 'opinionated', designed approach. Do you see the approach as part of something bigger in software? Why is this happening now?
Opinionated software was a term I coined to describe the rebellion against the fallacy of objective software. That software should be as configurable as possible from the outset to allow every user to bend it exactly to their needs. Opinionated software dares say the customer is not always right. That not everything should be a preference, that decisions can be made once for the better.

I'd like to see that idea take a stronger hold. Be a master chef, prepare me a meal of code that you think is the best it could be. Spare me the construction kit.

Do you need help with Ruby? Gain advice from Builder AU forums

Related links

Leave a comment

You must read and type the 6 chars within 0..9 and A..F

* indicates mandatory fields.

Log in


Sign up | Forgot your password?

  • Staff Share a keyboard and mouse with Synergy

    Even in the era of virtualization, many IT pros (including myself) have a small army of computers sitting on, under, and around their desks. Read more »

    -- posted by Staff

  • Staff Android devs less than gruntled

    Yet more discouraging news on the Android front. Having hacked off its developer community by releasing updated SDKs to just a small group of chosen devs, Google has now given the brush-off to a petition that called for more to be given to the wider community. Read more »

    -- posted by Staff

  • Staff VMware shows how not to do it

    As a developer there will be a time when you ship a bug -- be it a stub that you left in, or a flaming, crashtastic segfault. The next time this happens and your bosses come baying for blood, point them in the direction of VMware, who this week gave the developer world a great example of how to ship a showstopper bug. Read more »

    -- posted by Staff

What's on?

  • Club Builder: Captain Obvious vs the Crackpots

    In the case of the bleeding obvious, IBM says open source needs good designers; a claim is made that China can activate your phone to snoop on you; and we take a look at the Defcon conference.