Hacker News new | comments | ask | show | jobs | submit login
[dupe] Airbnb is 'sunsetting' React Native, reinvesting all efforts back into native (medium.com)
43 points by dsgriffin 8 months ago | hide | past | web | favorite | 20 comments

Discussed in this thread 2 days ago:


Doing a hybrid app in the way that the articles describe sounds like a recipe for tremendous complexity.

One line in one of the linked articles that really struck me was "Often times, it is not clear whether code should be written in native or React Native. Naturally, an engineer will often choose the platform that they are more comfortable which can lead to unideal code."

Without a top down vision of the proper role for React Native vs native code, how could anyone possibly expect things to go well?

Even within React Native there are a lot of existing "boundaries" where native code is used in a way that allows the general contracts adopted by React to be used without worrying much about the implementation details.

The quote above suggests that Airbnb expected a cohesive and sensible approach to emerge, when clearly there were (as the articles mention) many developers who were strongly opposed to React Native from the beginning.

While it's not necessarily the case, it seems that if there was debate about where "models" should live, there was really a need for a CTO to simply make that call and allow the rest of the team to coordinate around the tradeoffs associated with the decision. Without that, the battle will be fought with every pull request and other social and organizational factors (like bro culture, intimidation, etc.) will dominate over the technical merits of the decision.

I love Airbnb, and use the app extensively both as a host and as a traveler. It's not clear why it ever seemed sensible to go down a "hybrid" path. The app has pictures, scrolling listings, and photo views. I'd be curious to read an article that discussed very frankly the decision to go hybrid and where the lines were drawn that turned out to be problematic.

I don't think you're giving them enough credit. They built an either eng org on RN. I'm sure they made calculated decisions about how to address their stack. In fact IIRC Gabe said they always preferred pure RN when possible but conceded that someimtes it wasn't. I doubt it was some hybrid free for all like you're suggesting.

> I doubt it was some hybrid free for all like you're suggesting.

I certainly would not have expected it to be a free-for-all, but the quote I pasted suggests that there was not necessarily a perspective on how the decision about the boundary (or boundaries) between the technologies would have an impact over time.

We've all been there. You hire a super smart native developer who has been doing nothing but native for a long time, and he/she can work magic that makes the equivalent (probably a bit immature) implementation in RN seem pedestrian. Then, because the native dev is experienced and respected, the consideration of boundaries is ignored in favor of gratifying the feat of engineering that was just done.

Repeat that a few hundred or thousand times and the code is going to need a full rewrite, but since that is hard to accomplish politically the most likely outcome is to preserve the "value" of the native code, since it cost more (in salary) to have built, and to blame RN for the problems.

I use the Airbnb linting guidelines for JS and while they are generally useful they suggest a culture of pedantry and a failure to see the forest through the trees. One of the React core team members recently ranted on Twitter about the robotic desire some people have to pretend that moving components to functional components counts as work, etc.

So based on that I would not be terribly surprised if the decision making was locally optimal but globally crippling... or, suggestive of a devaluing of systems thinking in favor of pedantry and the petty tyranny it installs in its zealots.

I thought it was pretty amazing how much they hype up designing. Airbnb uses a CI workflow where they can practically draw a shape on a piece of paper and create a React component out of it. At least that is what I took away from their design bloggings. What I found truly amazing is that there were no instructions to set up their environment for my own product. What a waste of energy. Every marketing site and app I write has some part of utility for other applications. This is not the case with Airbnb.

AirBnb app was one of the primary examples of large organizations using React Native. They are simply saying they are sunsetting their React Native app.

I thought react native was a facebook technology, is it theirs to 'sunset'?

They're sunsetting their use of it, not the technology itself. (The title is very confusing.)

'Sunsetting' means they won't use it anymore? I've never seen that expression before. Does it carry any more meaning?

It also carries a more subtle connotation where a sunset is relatively peaceful, in contrast with a more violent and/or forceful verb like "terminating", and could also be seen as more inevitable.

The usual meaning is that it's a somewhat gradual discontinuation, but in this case I think it's an attempt to be polite towards those who made the decision to use React Native in the first place and to the creators of React Native.

Scrapping it, ditching it, dumping it, etc, sounds too much like React Native is crap and someone made a mistake choosing it.

"Sunsetting" is a very common term (in America, at least) for deprecating or discontinuing something.

But from my imperfect understanding if you own the technology/product, not if you just use it. So Facebook may sunset React Native? But I'm no native speaker.

Native speaker here. You're correct. "Sunsetting" is when the creator slowly phases out manufacturing / support for a product, so FB would need to be the one sunsetting React Native. AirBnB should say they're "transitioning away from" React Native.

I believe you are correct, so they could sunset the version of their app built with React Native, but only fb could 'sunset react native'.

The extra connotation here is that AirBnB was perhaps the most visible/vocal user/proponent of RN after Facebook. They built an entire engineering org on it, etc.

No, you're right. Users can't sunset anything.

Yeah, this is a very misleading use of sunsetting. They mean "sunsetting at AirBNB", but with the way the title is worded it sounds like AirBNB is shutting down the React Native project.

'gradual removal in stages' -- it is common in the United States for lawyers, government administrators, human resources managers, and others who make changes to important legal policies describing use and restriction of goods, services and repetitive payments, to describe this way.. (the phrase also has a mind-dulling, sleepy effect on the victims as a desired side-effect..)

It's just a euphemism to make something sound nicer. Also see "pivot", "readjust" or "awesome journey".

The original meaning is more like "slow phase out" or similar but now nothing gets "cancelled anymore". Everything gets "sunsetted" so the original meaning is lost.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact