News for hackers. Stuff that matters.
Re:Flutter: the good, the bad and the ugly by resters on Friday November 23, 2018 @02:08PM (#18518295)
React-Native is great, the only problem is that Facebook does not do enough to nurture the open source use of it, and this creates lots of extra work for teams using it.

Airbnb's decision to abandon RN is clearly due to engineering blunders and political nonsense internal to Airbnb, which has little to do with RN itself.

But if you look at all of the github issues for RN you will see that many of them are open/unresolved for weeks with hundreds or thousands of +1s only to have someone at Facebook mysteriously close them, leaving a lot of people in the lurch.

We're also seeing a lot of API and internal refactoring fromi FB rather than focusing on the ecosystem, which indicates that inside FB it is more beneficial to say "I sped up x by 10% in react-native" than it is to improve usability for the many using it as an open source library trying to get something simple to work as expected.

Re:Flutter: the good, the bad and the ugly by dep_b on Friday November 23, 2018 @03:49PM (#18518837)
I just had my first encounter with React Native and it wasn't a good one. It's the typical JavaScript dependency hell where things blow up at run-time with cryptical errors and tons of people on SO / GitHub just saying "use a lower version", to get another error and reading "this is fixed in the latest version" which was the one I was just coming from.

This built on top of the iOS build system and everything is intertwined in both directions at least a few times. I've seen builds working starting the iOS app from command line, only to break _everything_ just starting the application from within Xcode. And Android? I didn't even look into it anymore.

I think they're at 0.57 or something and that version number just wants to tell you one thing: We're going to break your shit some more in the near future before the dust finally settles.

Re:Flutter: the good, the bad and the ugly by SomeCallMeTim on Saturday November 24, 2018 @12:24PM (#18522967)
I'm hearing this complaint a lot about React Native in particular: That Facebook's "Move Fast And Break Things" philosophy is alive and well in the management of the project.

Most recently the stories were about specific controls that worked on Android but on on iOS, and then the new version arrives, breaks the Android behavior but fixes the iOS behavior...or vice versa, sometimes for the same control, in a later release.

I've heard better things about NativeScript; it's actually a more mature project than React Native, and has a lot of features that React Native lacks. And it's apparently a lot more stable.

But fewer people use NativeScript, so it's possible that I'm just not hearing as many of the horror stories. Also curious about Weex.

But I'm not making apps right now, so I haven't tried any of the above. People keep wanting to pay me lots of money to work on easy backend projects. Who am I to say no? :)

Re:Flutter: the good, the bad and the ugly by zebraflask on Friday November 23, 2018 @08:02PM (#18519813)
I had a similar experience. The idea of React Native is pretty great, but the difficulty developing with it is a significant drawback.
Re:Flutter: the good, the bad and the ugly by sudhirj on Friday November 23, 2018 @11:33PM (#18520457)
Flutter also has a bit of dependency hell at this point (might be better after it goes stable) - tried installing built_value (immutable data structures) and had a do a lot of dependency version tweaking and overrides.
Re:Flutter: the good, the bad and the ugly by resters on Friday November 23, 2018 @03:53PM (#18518855)
What library/libraries gave you issues?
Re:Flutter: the good, the bad and the ugly by d0m on Friday November 23, 2018 @07:29PM (#18519693)
>> Airbnb's decision to abandon RN is clearly due to engineering blunders and political nonsense internal to Airbnb

I could be wrong here, but from what I understood the cost of maintaining a hybrid RN + fully-native apps > full-native apps. I.e. What airbnb would gain by not having to code both android/iOS was lost by having to deal with all the RN non-sense (third-party libraries being deprecated, very fast non-backward compatible changes, etc.) but also having to always bridge the gap between what was RN and what was truly-native. At the end of the day, you look at your time and you realize that you spend more time trying to make it work with RN to "save time" rather than just coding it on both platform.

But then, most people using RN don't have to deal with this issue because they don't have an existing non-RN code base to bridge with RN.

Re:Flutter: the good, the bad and the ugly by vibrato on Saturday November 24, 2018 @04:55AM (#18521306)
This mirrors my experience working with Xamarin. You had to know both everything going on at the native level and the c# .net and Xamarin levels as well.
Re:Flutter: the good, the bad and the ugly by pjmlp on Monday November 26, 2018 @12:41AM (#18531356)
This is why I always advocate for platform languages on production code.

Too many hours spent in the past writing FFI code, tracking down bugs not knowing if they were on the platform or 3rd party language runtime, missing integration with platform tooling.

Naturally I don't always succeed at that.

Re:Flutter: the good, the bad and the ugly by ryanwaggoner on Friday November 23, 2018 @02:29PM (#18518411)
See, and I think that React Native is terrible, and Airbnb abandoning it clearly shows that their engineering culture is solid and not driven by cargo cult engineers chasing the latest fad.
Re:Flutter: the good, the bad and the ugly by coldtea on Friday November 23, 2018 @03:16PM (#18518661)
>and Airbnb abandoning it clearly shows that their engineering culture is solid and not driven by cargo cult engineers chasing the latest fad.

Depends on what they pick next (and why they picked RN before in the first place?), but as a standalone decision it's not enough to "clearly show" anything of the sort.

Re:Flutter: the good, the bad and the ugly by eksemplar on Friday November 23, 2018 @03:27PM (#18518719)
I’m not sure about that. The ability to identify and accept a hard problem, and then do something about it, speaks of good management in their engineering department.
Re:Flutter: the good, the bad and the ugly by coldtea on Friday November 23, 2018 @03:32PM (#18518743)
We just know that they changed toolkits. Not whether they did it to adopt a better one, out of some new fad, with valid reasons, etc...
Re:Flutter: the good, the bad and the ugly by gpeal on Monday November 26, 2018 @01:27AM (#18531545)
Author of the Airbnb blog post here. Airbnb is fully invested in 100% native right now.
Re:Flutter: the good, the bad and the ugly by ryanwaggoner on Friday November 23, 2018 @09:44PM (#18520164)
Agreed, it was a (probably too subtle) retort to the idea that them abandoning it clearly meant they’re a dysfunctional mess.
Re:Flutter: the good, the bad and the ugly by resters on Friday November 23, 2018 @03:39PM (#18518782)
I use the Airbnb app a lot and have done so for years and there is nothing terribly advanced or unusual going on. It may have been a cargo cult decision to layer RN into whatever they had beforehand, but if so that increases the chance that evicting it was also a cargo cult decision.

Read the blog posts, they had no approach to app-side state and it was essentially a battle between sub teams to see who could make their own ad hoc approach to state “win” organizationally and force other teams to deal with it when data sharing.

Sounds like a nightmare both from a cultural and engineering perspective. It made it so the only way to get a unified engineering perspective was a political “purge” of RN adherents.

Re:Flutter: the good, the bad and the ugly by chrisco255 on Friday November 23, 2018 @05:47PM (#18519337)
Discord uses React Native, and they only have two developers on their iOS app. Millions of users, impressive app with high performance...two devs.
Re:Flutter: the good, the bad and the ugly by saagarjha on Friday November 23, 2018 @07:04PM (#18519603)
> Millions of users, impressive app with high performance

No offense to the Discord iOS developers, but their apps is neither “high performance” nor impressive. It’s outright janky at times.

Re:Flutter: the good, the bad and the ugly by zapzupnz on Saturday November 24, 2018 @12:23AM (#18520588)
And their iOS app is saddled with loads unresolved UI/UX issues that have been around for years, the iPad version is heavily unoptimised, and it lags behind the desktop/web versions by miles.

The Android version suffers the same but moreso.

Re:Flutter: the good, the bad and the ugly by ryanwaggoner on Friday November 23, 2018 @05:51PM (#18519354)
I haven’t used their app, but scaling an app isn’t actually that difficult if the backend can handle it. I don’t think that their use of RN is relevant here unless you think there’s no way that a native iOS app of similar complexity couldn’t be built by two devs? But then you’d have to explain all the counterexamples, or even where a solo dev builds an app that goes viral and gets millions of users...
Re:Flutter: the good, the bad and the ugly by isoskeles on Friday November 23, 2018 @08:04PM (#18519824)
"Scaling" an app doesn't simply mean being able to use it on many devices (hence, "if the backend can handle it"). It also can mean you're able to be productive when adding new features to the application.
Re:Flutter: the good, the bad and the ugly by ryanwaggoner on Friday November 23, 2018 @09:38PM (#18520140)
I specifically was referring to scaling to millions of users. I’m a solo app dev consultant and some of the apps I’ve worked on have had big spikes of users. No big deal.

It’s kind of like saying your frontend framework is awesome because it scales to millions of users. Well yeah, they’re all running it on their own machines, so assuming you can deliver the code to them and the backend can handle it, you could scale to quadrillions of users.

Re:Flutter: the good, the bad and the ugly by chrisco255 on Friday November 23, 2018 @10:07PM (#18520235)
Yeah but the more people that use your app the more tested it gets. The more gnarly edge cases crop up, the bigger the impact if you accidentally ship buggy features, etc. Scale means even your front end has to live up to a higher quality bar. And given that app store downloads are driven by reviews, it's even more critical to avoid bad performance than on the web.
Re:Flutter: the good, the bad and the ugly by ryanwaggoner on Saturday November 24, 2018 @10:15AM (#18522335)
That’s true, and numerous people in this thread report that their app is nothing to be proud of.
Re:Flutter: the good, the bad and the ugly by k__ on Friday November 23, 2018 @07:04PM (#18519601)
"airbnb abandoning it shows it's bad, but other companies using it successfully doesn't sbow it's good!"
Re:Flutter: the good, the bad and the ugly by nv-vn on Friday November 23, 2018 @08:45PM (#18519952)
Abandoning something takes more work than using it, since it adds the cost of a rewrite. If Airbnb adopted framework X that wouldn't make me confident in framework X -- they haven't even used it yet! If they used it for a long time that would increase my confidence in X (in the absence of evidence to the contrary). But if everyone else started abandoning X I'd take Airbnb's experience with a grain of salt. I get that Discord is able to do well with it, but that doesn't mean everyone is able to do well with it depending on their needs. And who knows, maybe Discord is having just enough trouble that it hurts but too little to switch.
Re:Flutter: the good, the bad and the ugly by chrisco255 on Friday November 23, 2018 @10:05PM (#18520228)
Re:Flutter: the good, the bad and the ugly by ryanwaggoner on Friday November 23, 2018 @09:40PM (#18520147)
I was making a tongue in cheek retort about it “clearly” meaning that, since person I was responding to said it clearly meant they were dysfunctional. Probably could have made it more explicit.

I do think that scaling an app to millions of users says basically nothing on its own about the app framework / code quality itself. You’re scaling across as many devices as you have users. There’s no challenge at all there on the mobile dev side.

Re:Flutter: the good, the bad and the ugly by resters on Friday November 23, 2018 @06:15PM (#18519451)
React and react native is a fantastic design and a great project. It has been so successful that it is still having some growing pains.
Re:Flutter: the good, the bad and the ugly by Apocryphon on Friday November 23, 2018 @05:06PM (#18519172)
It's certainly possible for both RN and AirBnB's internal organization to not be great.
Re:Flutter: the good, the bad and the ugly by cheriot on Friday November 23, 2018 @03:56PM (#18518870)
They also started making enough money that the cost of two native development teams isn't a problem.
Re:Flutter: the good, the bad and the ugly by aplummer on Friday November 23, 2018 @03:08PM (#18518610)
> React-Native is great, the only problem is that Facebook does not do enough to nurture the open source use of it, and this creates lots of extra work for teams using it. Airbnb's decision to abandon RN is clearly due to engineering blunders and political nonsense internal to Airbnb, which has little to do with RN itself.

This is a very generalised opinion for a very specific technology with _many_ significant trade offs. React native can be excellent for one team, and terrible for a different team at the same time.

It may be great in your specific circumstances, but I’d give Airbnbs mature engineering team the benefit of the doubt that it isn’t the right fit for them.

Re:Flutter: the good, the bad and the ugly by resters on Friday November 23, 2018 @03:33PM (#18518748)
Well, if you read all the blog posts and read in between the lines a bit, they had a group of native developers who preferred to use their existing native skill set to build things, and since there was no unified approach to state, it became cumbersome to manage state between a hodgepodge of rn and native components.

So already the deck is severely stacked against rn because of the lack of guiding architecture decisions.

Then one can imagine how experienced native developers would end up with political leverage to evict rn, and by the time it happened it may have been the right choice.

But if architecture is done correctly the main problems Airbnb had would simply not happen and many of those native devs would not have had to be hired in the first place.

Re:Flutter: the good, the bad and the ugly by aplummer on Friday November 23, 2018 @11:41PM (#18520471)
The fact that you have jumped to "speculate airbnb developers are unprofessional and their architects are bad" is definitely something you could think about.

> Well, if you read all the blog posts > they had a group of native developers who preferred to use their existing native skill set to build things, and since there was no unified approach to state, it became cumbersome to manage state between a hodgepodge of rn and native components

This is an immature straw man reducing their issues to one thing - it's a long blog series I have read (and presented back to clients in a series of case studies).

I don't want to come in too hot because it's increasingly clear you are pretty fresh in your career, but taking this kind of negative view based on pure speculation is really going to be limiting for you.

As I said, RN is great in some circumstances, but like any framework / tech there _is many_ cases and orgs where it is not a good fit.

Re:Flutter: the good, the bad and the ugly by resters on Saturday November 24, 2018 @12:03AM (#18520541)
> reducing their issues to one thing

Not at all, I focused on the one thing that was mentioned as the most significant reason for team frustration with react native.

> I don't want to come in too hot

No worries

> it's increasingly clear you are pretty fresh in your career

I was thinking the same thing about you, no offense.

> but taking this kind of negative view

Not sure what you found negative about my view. Teams and individuals make mistakes and misjudgments. That is part of life. If you read my comments I said that removing RN was probably the right thing to do by the time it happened. This is often the case with bad technological decisions in startups and is rational because of sunk cost.

> many_ cases and orgs where it is not a good fit

This is why I cite architecture. With react or react-native you really need to know where the data is coming from and how the data will flow through the application. I'm arguing that the architect should have had a plan for how this would work before introducing react native into the app.

Airbnb has done a lot of great react-native work, so I know the issue isn't technical competency, but the linting rules Airbnb popularized suggest a very trees-oriented (not forest oriented) perspective on tech, which is the kind of perspective that makes the above kind of mistake.

Re:Flutter: the good, the bad and the ugly by aplummer on Saturday November 24, 2018 @03:15AM (#18521041)
> Not sure what you found negative about my view.

Cool reading your other comments too I realise I’m getting trolled at this point so I’ll finish up here.

Re:Flutter: the good, the bad and the ugly by resters on Saturday November 24, 2018 @11:50AM (#18522816)
> I’m getting trolled

In other words you have no rational or thoughtful response and have for the second time decided to use ad hominem attacks, this time the highly sophisticated one known as name calling.

Re:Flutter: the good, the bad and the ugly by aphexairlines on Friday November 23, 2018 @06:25PM (#18519482)
> indicates that inside FB it is more beneficial to say "I sped up x by 10% in react-native"

Are FB's internal goals related to improving their open source projects or related to improving FB products that might happen to use their open source projects? In most companies that would be the latter.