5 ms·
Are you sure it isn't a rails mindset problem?
by jawngee 18y ago
Are you sure it isn't a rails mindset problem?
- mechanical_fish 18y agoYes, indeed -- if by "rails mindset" you mean "build the minimum amount that will work - YAGNI; launch early to gauge interest and get feedback; use established, standard tools, methods, architectures and libraries when possible; premature optimization is the root of all evil; when you do hit a scaling problem, it will almost certainly be architectural in nature." Of course, once your app explodes in popularity and you realize that it's more of a messaging service than a CRUD app, you've got a problem -- the Rails Mindset problem. But this is the problem that the Rails user wants to have. The problem the Rails user doesn't want to have is the one where you spend months learning how to engineer a scalable messaging app, launch it, and find that nobody cares and that it can't be marketed. (And that was the obvious risk for Twitter at its inception. Everyone thought Twitter was a waste of time at first. I certainly wouldn't have wasted more than a few weeks building it, and I would have never imagined that I'd wind up struggling to move millions of messages a day.) If you want a world where you don't have any problems at all... I don't know what to do, but don't found a startup. ;) (Sorry you got downmodded, BTW... my advice is "be less terse". I tried the Zen Koan method of posting a few times when I started out here; it's unreliable.)
- pjhyett 18y agoThis is spot on. Unless you raise a bunch of capital affording you the time to try and build a scalable architecture before flipping the switch, it's just not feasible to spend time on problems that don't exist (and may never if you're site doesn't take off). The irony is even if you did try and build an architecture that scales from day 1, there's a really good chance that you'll have to redo it anyway once you spot the real bottlenecks.
- gaius 18y agoArchitecture != "a pile of kit in a datacentre". System architecture is algorithmnic in nature. There's no charge for having good architecture. You just need to put some thought in up front. In choosing to use Rails - and note this is NOT a knock on Rails - Twitter chose to side-step a large chunk of architectural work - and that choice - NOT the choice of Rails - is what bit them.
- blader 18y agoThis, this is smart.
- swombat 18y agoI wish I had more than one mod point to give you. Scalability issues are a very nice problem to have.
- blader 18y ago... until you have them.
- swombat 18y agoNot really. When you have them, that means you have lots of users. Any problem associated with lots of users is a great problem to have.
- blader 18y agoI can't tell you how many times I've wanted to punch people who've told me that in the face when I was sleeping for 2 hours day for a month.
- alex_c 18y agoYeah, lack of sleep makes me irascible too. Looking back today, would you have preferred a perfectly engineered system with no users?
- mechanical_fish 18y agoI think the technically correct answer to your question is "door number three". I'd watch out, though, because if I were blader I'd be sorely tempted to answer by punching you in the face. :) It's not like you didn't receive fair warning!
- swombat 18y agoIt's a fallacy to think that you can avoid all scalability problems. You can't. If you're successful, you will have scalability issues, period. So yes, since the problem is inevitable so long as you're successful, it is a nice problem to have. It's a bit like having a cold. That's practically inevitable at some point in your life if you're alive. Well, I'd rather be alive with a cold than dead, even though having a cold sucks. If you don't want scalability issues, they're very easy to avoid: just build a crappy service. One of my start-ups never had any scalability issues, and never had a stampede of users either.
- jrockway 18y agoNo, I don't think that's the problem. I think the problem is that they thought a CMS-style application would work. After all, Twitter is blogging, and Wordpress is a CMS-style app. What they didn't realize is that Twitter isn't blogging, it's an IM service. I think there have been enough blog posts about this (so look there for details). What I don't understand is why Twitter hasn't been rewritten to be an IM system yet. They seem to think that turning off features (like Replies) is the solution to their problems. It's not. Re. Write. It.
- mechanical_fish 18y agoWhat I don't understand is why Twitter hasn't been rewritten to be an IM system yet. Now's your chance. Twitter may never be more vulnerable than they are now. (Though you might want to consider that it will take you months to catch up to the enormous marketing advantage that Twitter got by building the "wrong" architecture first, using Rails.) But first, consider this use case: I hear that you belong to a certain IM system, so I go to the system's home page and type in your nickname. I'm presented with an up-to-date paged list of all the IMs you've ever sent, to anyone. I'm also presented with an up-to-date list of your followers (with cute little photos, all of which are up-to-date) and a list of those you follow, and by clicking any of their names I can get a list of all the IMs they have ever sent, to anyone. I'm not much of an IM user, so maybe I'm just naive... but I don't know of an IM system that does that. Perhaps because this idea is really expensive to scale, so nobody at (e.g.) America Online has ever bothered to try, because it wasn't evident that such a thing would be valuable until the folks at Twitter launched a quick Rails app to try out the idea.