3 ms·
No. Code size is based on a thing called optimization. If your application is too big, and it's because you think that there's too many engineers because there'
by lostgame 8y ago
No. Code size is based on a thing called optimization. If your application is too big, and it's because you think that there's too many engineers because there's too much code because the final application is three times as large as it has any right to be, then you have a problem of too many cooks in the kitchen.
If you're ignoring optimization in favour of hiring more people, you, as a software company, have your priorities so out of whack I'm not sure how to even offer a suggestion onto how to move forward.
I'll repeat: the application needs to have value. If I had Facebook installed, it would be by at least 100MB the largest application on my iPhone, next to GarageBand.
tl;dr: if optimization is not part of your development process, your development process is not good. This isn't something that can be argued.
- dymk 8y agoYou seem to be convinced that you've solved the application size problem that literally thousands of engineers have been working on for years. Or that you've got more insight into the engineering tradeoffs made at the company. I can assure you that's not the case.
- int0x80 8y agoI can assure you that the facebook CLIENT application is not rocket science and not worth 350M of disk. Maybe those thousands of engineers are looking at it from the wrong angle, yes, absolutely posible. Maybe they are not focusing on it too, but in something else.
- parthdesai 8y agoI mean, you also work at Fb. Maybe you are biased? I have a middle line Moto-E phone and installing fb app or messenger app totally makes the phone unusable. Surely something went wrong along the way?
- lostgame 8y agoYou seem to be convinced that there is any way in hell an application that is a client for an existing web service that is little more than a glorified RESTful client needs to be more than 300MB. You’re either not aware how these kinds of applications are constructed, or you’re perhaps not familiar with just how simple putting an application together like this is. The other response to this comment says a very similar thing. Yes. I can confidently say as an iOS developer of 8+ years if I was given a chance to manage this application I would certainly be doing the hell of a better job. If you don’t think you could, that’s cool, but I’ve made my living developing these types of applications since the App Store’s beta, and similar to when I hear an absolutely shitty pop song with mysogonistic or materialistic lyrics funded by some multi-million-dollar artist I say ‘I can do better,’ because, frankly, most musicians worth their salt could. It doesn’t matter how successful a company is, how much talent they have, if there are too many voices talking over each other nobody is heard. And poor decision making is affecting the app’s bottom line of usage at this point. When I say I can do better, it’s not coming from arrogance, the Facebook app is actually just that poor that any other direction that it’s current one would be an improvement. The statistic that OP posted alone proves that. If Facebook has even 25-30 people on their iPhone app, on the client side, they have way too many. We’re talking about pulling existing info from a server and re-displaying it. At what point, other than the tiny shell required to display that information, maybe about 100-150MB at most, is that extra 150-200MB coming from? If Facebook’s API were open for third-party FB applications, I’m sure I’d not be the first to whip up a minimalistic, small-sized, easy-to-use, far more intuitive application in a month or two of casual dev time. I did a similar thing for Twitter. It’s not hard. Is it so much more likely that whole extra let’s say 150MB needs to be there than it’s likely that there’s simply too many cooks in the kitchen and optimization is being completely ignored?
- softawre 8y agoI would expect that the FB client app does a lot more than you would expect it does. There are probably features in there for gamers, businesses, marketers, sellers, etc. Yes you could build out 90% of the app that most people use in a smaller download in a couple months, that's not really noteworthy though.
- woolvalley 8y agoYou obviously have the experience level to get a job at facebook. Go do that (or some other big tech co) and you will understand why their apps are so large. Some other candidates: linked in, twitter, uber, lyft, youtube, snapchat, gmail. Binary size is a problem issue at all of them and they would appreciate an expert such as yourself to solve it. You could get a staff engineer position and make half a million a year!
- askafriend 8y agoFirst of all, the Facebook app is literally an entire operating system unto itself, among other things. Like someone pointed out, there's an entire Craigslist, an entire Snapchat, an entire Yelp, an entire YouTube, an entire web browser and so much more stuffed into a single app. On top of that, there are probably thousands of A/B tests and divergent code paths that are running simultaneously. Even if you have a feature, you probably have the code to switch between 10 different variants of that feature. There's also complex real time user instrumentation, media storage and backup features, tons of custom animation frameworks, networking frameworks, caching frameworks and on and on and on. The level of complexity and the millions of man-hours worth of code backing that app is insane. At this point, it shouldn't be surprising in the slightest that the app is a cool ~300megs. Could it be better? Sure, and I'm sure they're working on it. After all, look at their developing country strategy and the stuff they do with "Facebook For Every Phone" to shave off every last byte from their apps: https://code.fb.com/android/how-we-built-facebook-lite-for-every-android-phone-and-network/ https://code.fb.com/android/how-we-built-facebook-lite-for-e... If you look at the incentives, it's NOT in their best interests to make updates hard. That's not how they make money and in developing countries it actively costs them business. It's not that they're intentionally bloating the app just to mess with you....it's just that there's really that much going on in the app, along with it maybe being a little sloppy too. Look, I have my beef with Facebook just like everyone else does to an extent....but this whole app size argument you seem to be spending a lot of energy on just has no legs if you truly understood the problem space. I mean this is what you said: "We’re talking about pulling existing info from a server and re-displaying it". We _are not_ talking about that. The problem space is much much much larger than that (I mean they're running machine learning models on-device, doing real time facial recognition, leveraging AR in their custom cameras, streaming real-time data, among other things). I think you are severely overestimating your knowledge of the topic and I implore you to truly take a step back and re-evaluate what people are trying to tell you here.
- ryandrake 8y agoThe key word there is trade offs, and it’s clear, if the client is 300+ MB, that the engineers there are trading off smaller size for something (faster development, code reuse, etc.) You and parent are probably both right. They obviously could make the client 30MB or even 3MB, but choose not to because they find other things more important.