3 ms·
> arrogant to assume that you have any clue what they did I know what they did. They’ve made an 0.5GB mobile app that downloads some data from a server, and di
by Const-me 8y ago
> arrogant to assume that you have any clue what they did
I know what they did. They’ve made an 0.5GB mobile app that downloads some data from a server, and displays it with a nice 2D rich GUI. I’ve wrote a few similar apps, both for iOS and WP.
> the constraints they had
Again, I know most of the constraints they had. Unlike PCs or especially lower-level platforms like game consoles or embedded Linux, at least 50% of these constraints are dictated by Apple and should be known by every developer with the access to iOS SDKs. Other constraints are dictated by internationalization, Asian languages and RTL layouts indeed complicate a few things, but not enough to justify the size. Same for multi-platform development, data caching, and security & privacy constraints.
The only thing I don’t know about these constraints is their client-server protocol (not because I don’t work in FB, it’s possible to reverse-engineer with a sniffer, I just never cared). But if it’s network-related code that’s so complex, I would consider making a server-side proxy, to expose mobile-friendly protocol. BTW I did that too, when I was working on mobile bank clients.
> or the kind of people they hired while developing it
I agree with you on that. I don’t know anything about FB, I‘ve just guessed about it.
- orf 8y ago> Again, I know most of the constraints they have. That's the problem. You and I both have no clue. Do you really, in your heart and hearts, believe that writing an app for the number of markets Facebook has, with all their weird quirks and all the features they support would have 50% of the constraints imposed by Apple? Look, I do get your point and there are nuggets of truth to them, but overall your argument is like someone saying: "pfft, Google runs millions of servers? I've written assembly, they could run their whole infrastructure on 10 servers if they just knew how to write proper software". I hope you can see how patently ridiculous that is.
- Const-me 8y ago> Do you really, in your heart and hearts, believe that writing an app for the number of markets Facebook has, with all their weird quirks and all the features they support would have 50% of the constraints imposed by Apple? Yes I do. The client functionality is relatively simple, even with all these per-market quirks and features combined. And Apple did excellent job providing stable hardware & software environment, and deprecating old hardware. Per-user quirks are almost non-existent on iOS. This is unlike PC platform, for that CAD app I had to spent significant time implementing various workarounds for users on old PCs, Intel breaking GPU drivers, and many other strange things. > I hope you can see how patently ridiculous that is. Scaling web apps is relatively hard. A system running on 1M servers is way more complex than similar system running on 5 servers. An FB user however only has a single iPhone in their pocket, with 4-6 cores and 2-3GB RAM. The mobile software doesn’t and shouldn’t care how many servers FB has in their datacenters, or how many petabytes of data are stored on these servers.
- mping 8y agoI believe you are falling in a trap that some people fall when they do this kind of analysis; I don't doubt that you (and lots of other users on this forum) are completely capable of doing a facebook-like app that is much more efficient in terms of space and performance. However, facebook didn't wrote the ios app overnight. They got to this point because of a long trajectory of lots of tradeoffs, some heavily related to the human, organisation, social side of software development - its hard to coordinate an effort across probably dozens of teams. You're commenting on a 10ton freight train travelling at 50km/h saying you can build a faster car. Well, they probably started with a car, too but built a train along the way. I'm sure if they rewrote it it would be much better but that's just how things are in software. Doesn't mean we shouldn't look at the app size, but don't forget the trajectory instead of looking at the last data point.
- Const-me 8y ago> because of a long trajectory of lots of tradeoffs, some heavily related to the human, organisation, social side of software development - its hard to coordinate an effort across probably dozens of teams. I agree with you on that, but hard ≠ impossible. I was fortunate to work in a couple of large companies with good technical management. The companies did OK even for large software with 10+ years of legacy C++ code. It indeed required significant effort to coordinate teams and people. But if you’re a technical lead in a software company, it’s exactly your job to accomplish that. If user wants to travel by a car and a company’s telling them “you can ride our awesome freight train instead”, it might mean the company has failed to manage the software development part of their business. It’s even possible the developers were top-notch professionals, but technical management wasn’t, and the management prevented developers from doing their job well.
- mping 8y agoFair enough, I think I understand what you mean. FB, as an app, could be much better.