Twitter Abandoning RoR?
If I had more time – or didn’t need sleep or food perhaps – I’d be interested in learning Ruby and Ruby on Rails, if only to see what all the fuss is about.
As I’ve begun experimenting more and more with PHP frameworks, one of my big worries is that the frameworks enable quick development but only by hedging priorities against each other: the site’s up and running fast but the problems are reserved for later: if a site succeeds and traffic explodes, then the framework could become the source, instead of the solution, to scalability problems. And how do you fix a problem that’s part of the system’s core? Re-do the core? Thanks, but I have a life.
Rumors are that’s what’s happening at Twitter.
I’ve worried a lot about scalability with PHP frameworks. It doesn’t matter much to my personal projects; they’re usually plenty small, but what’s the point of learning a framework if it can’t be applied to large, enterprise-size web applications? One of the reasons I shied away from CakePHP was a gut suspicion that it would face similar scalability problems as Rails. I’ve not found any proof of this, however, and I’m not sure where my anti-Cake prejudice comes from exactly.
I liked Zend’s framework for its willingness to let me choose which of the bits and parts I want to utilize. If Zend were a cake, I could eat the frosting alone. If at one end, there’s Java that’s highly scalable but slow to develop, and at the other, there’s Ruby on Rails that’s not very scalable but develops at Roadrunner speeds, I’d prefer to hedge as nearly to a framework that’s still close to the ground, that’s highly adaptable as I can. The Zend framework, I suspect, because it’s so abstract, because it’s classes can often run independently, may require more knowledge and experience to develop within than Cake but what it might sacrifice in initial time investment it makes up for in post-launch adaptability and scalability.
And I’m judging entirely on my gut. I’ve found it difficult to find good empirical comparisons of Cake, Zend, Rails, Symphony, et al.
2 Responses
Add your response
Vidar Hokstad
Frankly, the main two questions to ask yourself for web frameworks regarding scalability are these:
- Can they easily handle replicated or partitioned databases. In other words: Can they connect to more than one database that either has the same data, or a subset of the data? Replication is important if you assume you need to scale reads most. Partitioning becomes important if you need to do ridiculous amounts of writes.
- Can they easily handle shared sessions? This is important so that you can scale by adding more frontends
If your framework can handle both, it can scale further than you need to worry about unless you do very complex things, in which case you should split the complexity out into one or more separate layers/services in any case.
May 2nd, 2008
admin
Vidar -
Just browsed your blog, and feel comfortable saying that your knowledge and experience is significantly beyond mine.
I’ve had some difficulty identifying what it is that makes me wary of RoR and CakePHP as frameworks – a lot of it might come from the insistence on easiness, like it’s magic. If it’s attempting to do everything, then I worry if it will do anything efficiently.
On your blog you wrote, “‘Framework’ is to me an euphemism for ‘Gordian knot of interdependencies.’ It doesn’t have to be that way, but it ends up being that way more often than not. If a framework is engineered explicitly to be just a collection of libraries that share minimal interdependencies and are useful by themselves, then I have no beef with it.”
That’s probably a better wording of what I’m thinking about. As is your talk of cohesion and coupling at the bottom of that post.
As per replications, partitions, and shared sessions, that’s now at least something specific I can research and learn about in relation to some of the popular frameworks… so thanks for that!
May 2nd, 2008
Respond to “Twitter Abandoning RoR?”