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? 





Leave a comment