7 ms·
The loop of app building: 1. Build app with native framework. 2. Re-build app with some alternative framework which is slower, but let's you deploy single code
by butz 7y ago
The loop of app building:
1. Build app with native framework.
2. Re-build app with some alternative framework which is slower, but let's you deploy single code on all platforms.
3. Re-build app with native framework, because it is faster.
4. GOTO 2
- tomaszs 7y agoPerfect :)
- robofanatic 7y agoMainframe -> Native Desktop apps -> Web apps -> Native Mobile Apps -> Mobile Web apps
- keyle 7y ago1. Developers: YEP! 2. Developers: YEP! 3. Developers: YEP! Munch Munch Code Munch WTF Munch AGILE! $$$ Munch. Designers: 1. We need a new design system. 2. We need a new brand! 3. We need a new font! Users: ¯\_(ツ)_/¯ /s <3
- nneonneo 7y agoThe best part about this cycle is that developers can always point to some metric which shows improvement to justify their actions, resulting in an Escher-like loop where they think they’re always going up. These cycles pop up all the time in development as priorities shift (or as developers find more excuses to “fix” what isn’t broken). Real world coding always involves compromise - leadership is recognizing which compromises to make without continually backpedaling.
- lord_braleigh 7y agoTo be fair, small fast messenger 2020 is "better" (aka more features / millisecond of cold start) than small fast messenger 2016. The cycle doesn't always go up monotonically, even if developers pretend it does. But it is possible to go "full-circle" through the loop and wind up in a better place than you started, and it's even possible for each stage of the loop to be truly justified given product needs.
- joshspankit 7y agoHow much of that is simply improvement in processing speed of the device and/or better OS APIs?
- ferzul 7y agoindeed, it could be rational business needs. at a time when it's more expensive to hire devs, maybe it looks better to have a single codebase. at a time when performance is more valued, maybe it's better to rewrite in native.
- woadwarrior01 7y agoThat's the problem with Coordinate descent[1], which is how we humans intuitively go about optimizing things. [1]: https://en.wikipedia.org/wiki/Coordinate_descent https://en.wikipedia.org/wiki/Coordinate_descent
- blunte 7y agoI don't know what world you live in, but in my world developers don't have to look for excuses to do work. Perhaps some companies running on endless VC overhire, but the real working world has fewer employees for most positions than it needs. And in the case of Messenger, I highly doubt it was the developers who said, "Hey, let's add this completely unrelated thing to our codebase - payments!". More likely it was marketing or "product" that told the devs what to add.
- dzonga 7y agothe reason is they're high paid engineers without skin in the game. Fb is already making money, hence a lot of engineering efforts are not related to having fb make money, but to prove the engineer's worth.
- mathgladiator 7y agoAnd to keep people in the game to operationally care.
- notJim 7y agoIt's great, because each approach has pros and cons, so as long as you primarily focus on the pros, it's a win every time.
- thedance 7y agoMore like: make app hideous and bloated; make app slightly smaller; crow about your harvest of low-hanging fruit
- BubRoss 7y agoYou do realize that you can have one code base and write in C++ right? You don't need a slow framework to have a UI run in multiple places.
- pjmlp 7y agoSomehow younger generations are allergic to it, you seldom see it listed as alternative for portable busines code, even though it is available out of the box in all mobile SDKs, with first class IDE support alongside the respective upper layer languages on the platforms. And the amount of time spend writing a bit of glue code, specially on Android, is still less than debugging integration issues in all those Hybrid/Abstration frameworks.
- ksec 7y ago>Somehow younger generations are allergic to it, Because they haven't been burned by that cycle yet.
- fao_ 7y agoFrom TFA: "We reduced core Messenger code by 84 percent, from more than 1.7M lines to 360,000." Sounds like not only did they make the app quicker and lighter, they improved code maintenance too. If the android app is as the same size as the new ios messenger app, they'd still have less code to maintain than the previous ios messenger app. See also: this other comment - https://news.ycombinator.com/item?id=22468036 https://news.ycombinator.com/item?id=22468036
- toastal 7y agoI wonder how this will effect Lite. I use it over Messenger strictly to reduce bloat and get an app with the bare essentials of chat and calls fol friends that refuse to use Signal.
- hvidgaard 7y agoHow in the name of everything did they manage to write 1.7M lines of code for a messenger app? That is an astonishingly large code base! We're talking about an instant messenger app with heaps of features, having a LoC footprint 3.5% of the size of modern Windows.
- azinman2 7y agoAnd they ended up in hundreds of thousands of lines :) Wonder if part of this is custom video / audio codecs? That I’d imagine would contribute a good amount...
- philips4350 7y agoI wonder if react native library code and all the other code related to it like the js engine is included in that metrics.
- danabramov 7y agoThere was no React Native in the Messenger app before the rewrite.
- ngcc_hk 7y agoBetter than plan plan plan. It is the customer or user that use it that count. Not the programmer.
- Illniyar 7y agoAs far as I know messenger was never written in a cross-platform way, neither RN or otherwise. Is there anywhere that suggets it was ever non native?
- danabramov 7y agoIt was fully native.
- vijaybritto 7y agoNot sure why people are downvoting an insider answer from an actual FB employee
- avocade 7y agoExactly. But this was the last time the business collectively did something that short-sighted, right? Last time.