4 ms·
Yes, 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
by mechanical_fish 18y ago
Yes, 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.