gtd
Joined 14 years ago
Joined 14 years ago
No, this is resume-driven-development, Google-scale-wannabe FUD. Understand your requirements. Multiple databases is non-trivial overhead. The only reason to add multiple databases is if you need scale that can't be handled via simple caching.
Of course it's hard to anticipate what level of scale you'll have later, but I can tell you this: for every tiny startup that successfully anticipated their scaling requirements and built a brilliant microservices architecture that proactively paved the way to their success, there's a 100 burnt out husks of companies that never found product market fit because the engineering team was too busy fantasizing about "web-scale" and padding their resume by overengineering every tiny and unused feature they built.
If you want to get a job at FAANG and suckle at the teat of megacorporations who's trajectory was all based on work done in the early 2000s, by all means study up on "best practices" to recite at your system design interview. On the other hand, if you want to build the next great startup, you need to lose the big co mentality and start thinking critically from first principles about power to weight ratio and YAGNI.
The question is how far can they push it without totally frustrating the power users. I think it may be inevitable that Apple eventually stops making machines that the majority of non-Apple developers can tolerate.
> Sandboxing non-App store apps
I thought sandboxing was only required for App store apps?
I have to disagree here. There are clear use cases for either Drupal or Rails. I understand why you yearn for a Ruby Drupal, because dealing with PHP is a hassle, but objectively there is little to be gained since Drupal is already a beast and performance would only be hurt by being ported to Ruby.
Aside from that, the key advantage that Rails or other low-level web frameworks have over Drupal is that they don't make any assumptions beyond the fact that you are using HTTP. With Drupal there is an incredible amount of pre-existing architectural cruft to enable its powerful functionality, but it creates a ton of overhead to deal with as soon as you want to do something that doesn't neatly fit it's paradigm. As soon as you brought something like this into Rails then you'd be defeating the purpose of its simple elegance.
I just don't see any way to separate out the best of both worlds. They have very distinct use cases.
The secondary reason is indeed cultural, but not it's nothing so abstract as what 37signals does. Rather it's the technical culture of moving fast and breaking things. With Rails you need to stay on top of upgrades all the time. If you are actively working on an app then this is a net benefit because you get new features. But it also creates maintenance work downstream, and not just with application code, but application servers are also relatively unstable. When you have something with a high heterogenous installation count like WordPress or other popular open-source apps, the pain of maintaining version compatibility and keeping it running over time far dwarfs any benefit of using a more powerful language like Ruby.
However, if your site goes down for any reason a postmortem of this sort is definitely warranted. The word "launch" is not signifying much more than a point in time in this case, and I think you're jumping to a lot of conclusions about what hopes they were pinning on this event.