4 ms·
But the question was why large companies use platform abstractions. Because they are large in headcount, by definition. Because the apps are already large. Beca
by Androider 7y ago
But the question was why large companies use platform abstractions. Because they are large in headcount, by definition. Because the apps are already large. Because they have massive platform specific teams, and they would like not to. Because the teams are geographically spread out, for a myriad of reasons.
The large companies are what they are, and you cannot apply the same type of thinking to their problems as if you were designing the organization from scratch. There's problems they have, and the team structure they would like to have, and based on that the technology choice to favor abstraction makes sense.
- wvenable 7y agoYes, many large companies seek technological solutions to political problems. I've worked for dysfunctional organizations; they want technology to provide the decisions bottom-up because, for whatever reason, nobody wants to make any hard calls. These projects fail because you simply can't have success that way. If this is a political and organizational problem, then this choice of technology is entirely not about the pros and cons that have probably been debated to death in this topic. I agree. I think you've added some really good insight in this conversation. But I think that solution is dumb. It's especially dumb for a software company because software is their core competency. That's where they should be spending their resources on. They should be minimizing costs but not at the cost of their core product.
- Androider 7y agoI wouldn't class this as political problems. Is Facebook having a gazillion developers on their app a political problem, or necessary given what they want it to do? How is replicating that for each platform a good solution, in any sense (political or technical)? Tech companies core competencies are the service or product that they provide. Making it N times for N platforms is a hurdle that doesn't improve on the core, it's a cost of the fragmented market. I'm arguing that it makes perfect sense both technically and politically to focus your vast majority of developers on your core, and only having specialized platform teams were necessary as a cost of doing business. How is developers re-implementing every UI screen and feature across iOS and Android helping Shopify customers sell more merch?
- wvenable 7y ago> Is Facebook having a gazillion developers on their app a political problem, or necessary given what they want it to do? Yes. How is it not a political problem? It's not a technological one. > How is replicating that for each platform a good solution, in any sense (political or technical)? It doesn't change anything politically but technologically platform abstractions are never 100%. You always need an expert for each platform anyway and by targeting the abstraction rather than the platform you're just targeting a crappier experience for your end users and often your developers as well. React Native is not without it's issues. So what's the benefit? You're not saving expertise. Even sharing code isn't that important -- once decisions have been made, features planned out in detail, server APIs created, the actual platform specific code is a pretty small part overall. You still have to test on each platform individually. Fix platform specific bugs even in non-platform specific code. And you're not creating a dependency on a 3rd party that you don't control. > How is developers re-implementing every UI screen and feature across iOS and Android helping Shopify customers sell more merch? How is it not? I mean the argument here is that there is a huge savings to justify the risk but I don't think that's true.
- wvenable 7y ago> Because they have massive platform specific teams, and they would like not to. I'm somewhat shocked at the size of some of the mobile app development teams at some of these companies. There's no way they need that many developers. What are 100's of developers doing on a single app for a single platform? How is there enough work for that many people? The overhead must be unbelievable. I can't imagine that adding a platform abstraction is going to fundamentally change the headcount if your headcount is already ridiculous. It just doesn't remove that much effort.
- Androider 7y agoThe Facebook app is like Microsoft Word. Everyone only uses 20%, but it's a different 20% for each. The app is a hojillion megabytes, and serves literally billions of users. There's features in there that addresses some specific niche in Africa for "only" 50 million users, that some sub-team of a sub-team is tasked with maintaining.
- wvenable 7y agoMicrosoft doesn't use an abstraction to create Word for Mac OS. They have shared code, yes. But they are different products with different user interfaces to match their respective platforms. I'm not sure why mobile is so different that one needs a platform abstraction if you've already got a bazillion developers working on the product. Of course, Facebook does benefit by owning that abstraction making it exactly what they need. For everyone else, the risk is a bit different.
- Androider 7y agoMicrosoft has been building Word on Windows since the 80's, so it's never going to be re-written. I'm not that familiar with the Mac version of Word, but I find the Mac Excel version lacking compared to its Windows counterpart. For Word and Excel for iOS and Android they use... React Native [1]. [1] https://blog.appfigures.com/microsoft-goes-all-in-on-react-native-for-their-mobile-apps/ https://blog.appfigures.com/microsoft-goes-all-in-on-react-n...