Which is sorta ridiculous considering that it's definitely not among the most complex of the Web apps out there. Even late competitors like www.shoutem.com are much more complex as they allow for a bunch of Twitters to be created on the same platform.
The only complex thing about Twitter is its size, and I bet their developers are working round the clock just to keep it from falling apart.
What your saying is true for almost every web app. I don't see any reason to justify Twitter's complexity that requires 1000 engineers.
Scale is such a weak argument since their entire product paralelizez very easily.
> Twitter the server is hard and requires hundreds, twitter the client is easy and requires 1.
You are severely understimating the amount of work that goes into a (web) client application that is being used by as many people as Twitter's - UX design and testing, accessibility, internationalization, browser compatibility (including lots of exotic ones you may never have heard of)...
I'd be surprised if anyone thought building Twitter with similar scalability would be easy. Sure while you cold fit it into 1 mySQL DB it would be easy to get the basic features down with a much simpler UI and no API. Past that though they would be vastly underestimating the work.
Yes, Twitter's backend is actually quite sophisticated.
It's one thing to build a very small Twitter clone for you and your friends, it's quite another to scale that up to hundreds of millions of users and keep everything running smoothly.
I think the specific situation with Twitter is that it takes a lot more people to create and update a system of this size than it does to merely maintain it. They simply no longer have the capacity to make a large new product at this point, but even a skeleton staff is enough to keep the existing product running.
They're not incompetent, they're just developing a web browser. Which means using all kinds of gnarly bleeding-edge optimization techniques that introduce massive complexity just to get Twitter to display 140-byte messages with reasonable performance, not to mention dozens of nasty parsers for nasty data formats. Basically, what I'm saying is that the web sucks. I think web browsers are probably more complex than operating systems at this point.
I'm shocked it's only 25. I would have expected an order of magnitude more given the number of features and sheer reach of Twitter. That can't possibly be right.
Not sarcasm btw. I think you're underestimating how much work there is.
First, there are a ton of features: lazy-loading tweets, retweet, favorite, lists, all the stuff related to analytics, settings. Simply maintaining that stuff with security updates and bugfixes is a significant commitment.
Then there's accessibility and localization to consider.
Next there's fix and feature experimentation. They probably don't release new features and fixes to everyone at once. Instead they roll them out slowly, or show different versions to different users, compare, analyze and iterate.
Browsers update approximately every 6 weeks, so that's something to keep abreast of. At Twitter's scale, a CSS rendering bug that affects 0.1% of sessions will be seen by hundreds of thousands of users.
And it's not just "a Twitter client". It's THE Twitter client - the canonical one. It has to have higher standards of performance, quality, and reliability than a random Twitter Android or iPhone app.
Your point makes sense if you have no idea how Twitter works.
It needs to assemble tweets internally, sort them with an ML model, add in relevant ads and present a single response to the user because end-user latency matters.
And each of these systems eg. ads has their own features, complexities, development lifecycle and scaling requirements. And of course deploying them continuously without downtime. That is how you end up with disparate services and a lot of them for redundancy reasons.
I know you think you’re smarter than everyone at Twitter. But those who really know what they are doing have a lot more respect for the engineers who built this insanity. There are always good intentions.
I have always wondered this too. On the surface, Twitter doesn't seem like a very elaborate service. I'm sure there's serious thorny scaling problems to deal with. But how many engineers does that really take?
I'm really curious what you think is so hard about Twitter.
As far as I can tell it is basically a CRUD app with some real time analytics to surface some trends.
You said some stuff about Events bubbling, like if I Retweet something you seem to think there's a lot of complexity there. But as far as I can figure all that does is create a new row in a database somewhere and when someone who follows me fetches their feed, my new retweet gets included in there.
Aside from the scale, what's hard about it? Am I completely missing something?
The only complex thing about Twitter is its size, and I bet their developers are working round the clock just to keep it from falling apart.
reply