8 ms·
From: https://engineering.fb.com/data-infrastructure/messenger/ https://engineering.fb.com/data-infrastructure/messenger/ > We accomplished this by using the n
by reggieband 7y ago
From: https://engineering.fb.com/data-infrastructure/messenger/ https://engineering.fb.com/data-infrastructure/messenger/
> We accomplished this by using the native OS wherever possible
Does this mean this application does not use React Native?
- taeric 7y agoI can't decide if seeing the pendulum swing that drastically would be hilarious to see, or not.
- pier25 7y ago> We also embraced platform-dependent UI and associated tooling It would seem that way.
- layoutIfNeeded 7y agoWow! So the OS frameworks are there for a reason? Who would have thought?! Mind = blown! One can only hope that Slack and other Electron apps reach this point eventually...
- bmj 7y agoYeah, that's how I am reading that. Given the headaches caused by Apple finally barring UIWebView (the basis of frameworks like Cordova) from new App Store submissions beginning in April, I'm not surprised FB would do this. There is plenty of rumor-mongering that Apple is going to make it increasingly difficult for apps based on hybrid frameworks through the submission process.
- Klonoar 7y agoUIWebView was deprecated for years, everyone's had plenty of time to move to WKWebView, and it has nothing to do with React Native to boot. Apple legitimately doesn't seem to care about hybrid frameworks, they've been there since day one. Any time it's seemed like it got difficult Apple has backed down. The lack of JIT in WKWebView is probably the only thing that you could stretch here.
- saagarjha 7y agoWKWebView is out-of-process and has a JIT.
- Turing_Machine 7y agoPrinting still sucked pretty bad in WKWebView the last time I looked into it (which admittedly has been a year or two, so maybe that's been fixed).
- Turing_Machine 7y ago> Given the headaches caused by Apple finally barring UIWebView (the basis of frameworks like Cordova) Cordova (and derivatives, such as Ionic) have had WKWebView available for a long time now, I think since iOS 9. The Cordova team added a compile-time flag to force WKWebView in 5.1.0 (out since last November), and will be removing UIWebView altogether in 6.0.
- pier25 7y agoReact Native doesn't use a webview.
- fingerlocks 7y agoReact-native does not run in a webview. The JS binds directly to native elements. In fact, you can easily wrap any native code and make JS bindings to call it directly.
- ryandvm 7y agoMan, I hope so. There has beens so much cargo cult built up around React Native that suggesting other approaches is almost guaranteed to kick off many rounds of contentious design meetings. Fortunately, nothing quite takes the wind out of a platform's sails like watching the creator back away from the platform.
- dang 7y ago(Some of the comments in this thread, like this one, were originally posted to https://news.ycombinator.com/item?id=22467769 https://news.ycombinator.com/item?id=22467769, which explains e.g. why they mention the URL explicitly.)
- gigatexal 7y agoThe place that invented it not using it would be huge
- 1023bytes 7y agoThey definitely wouldn't be able to achieve these kinds of results with React Native. It obviously adds a lot of unnecessary overehad.
- on_and_off 7y ago-step 1 : write an app with a multiplatform framework. -step 2 : rewrite it in native so you greatly improve metrics while reducing code base size. Seems like a good way to achieve great improvements in your product
- williamdclt 7y agoIf the step 1 allows you to get your product out more quickly and that has enough business value, I don't see why not
- on_and_off 7y agoThat's fair and there is definitely a use case for these frameworks in order to quickly ship a product on several platforms. There is also an inherent cost to rewriting all your codebase at once that should not be under estimated. For something so big and integrated as messaging, I am not sure that this was a good match. Admittedly turning messaging into a do all à la WeChat was very probably part of the initial plan.
- esistgut 7y agoDid the previous application use React Native?
- yunyu 7y agoWhen I interned at FB in 2018, there was no RN in the Messenger codebase. However, it did make extensive use of various FB UI abstractions like Yoga layout and ComponentKit.
- tomduncalf 7y agoReact Native isn't necessarily a great fit for something that is intended to be "a simple, lightweight utility" - there is a reasonable start up overhead, for example, with RN, and it also involves bundling quite a few libraries and dependencies. That doesn't mean React Native is not a good fit for any kind of application - for many kinds of apps, start up time and app size are a much smaller issue - but seems Facebook made the right decision for an app like Messenger which primarily needs to start fast and drain as few resources as possible.
- freepor 7y agoReact Native (or any framework) isn’t good when you can literally afford billions of dollars of R&D given the financial value of the app. Just like the Mars rovers don’t run Python but it is a great language for a experimental SaaS app testing a new market, RN is great for a team of 3 engineers to get a multi platform app shipped, but not a great choice for an app worth ~$100 billion to its parent company.
- kreetx 7y agoInterestingly, there was news on some satellite running javascript. But I wonder if the core was running something else, and peripherals were run with js -- and simply restarted when they died, Erlang style.
- ComputerGuru 7y agoJS requires a runtime, so by definition there would have to be something (even if it’s just a bastardized gc-free version of JS itself).
- saagarjha 7y agoTechnically so do the native platform frameworks: they just come with the system.
- adev_ 7y ago
- kristianp 7y agoThere's no mention either way. The article talks about a single C library and C extensions. And it mentions using native OS functionality. Those could be used from javascript or any language.
- soylentgraham 7y agoYeah, which is probably why it's in C, portable AND callable :)
- _bxg1 7y agoI'm thinking maybe they moved off of React Native. RN makes sense for a small org or for an app you're just getting started with, but a megacorp like FB can afford to hand-craft a smaller, tighter app for each platform.
- zerubeus 7y agoMessenger was never written in React Native https://reactnative.dev/showcase https://reactnative.dev/showcase