Live data from Hacker News

Why I'm Not a React Native Developer

arielelkin.github.io

41–50 of 318 posts

Re: Why I'm Not a React Native Developer

#41
A lot of people here seem to criticize the OP's POV on javascript, but my biggest takeaway was the more abstract parts of his post, such as patents and uncertain roadmap. These are very REAL problems.

I am a javascript programmer AND an iOS programmer. I work with React to build web apps at work. And lately I have played around with react native, but I felt uneasy jumping ship to use solely react native for the very same reason.

I instead decided to learn Android programming. There's really nothing to lose going that route (after all, you're learning Java, which is arguably the #1 popular language in the world, so even if you end up giving up on Android, you still know Java), compared to spending the same time learning React Native which has very uncertain future (I would trust it much more if it was not from a corporate entity like Facebook)

Re: Why I'm Not a React Native Developer

#42
post #14

Earlier quoted context omitted.

I feel like this is some sort of signaling, a la 'no true programmer uses javascript, because types!'.

I used to half joke like this, but recently I've been doing some React work in ES6 with Flowtype annotations. It's actually not that bad.

Exactly. Flow even has tagged unions now, and `maybe` types. TypeScript is also a very mature solution to this problem. A true professional works with whatever language he needs to solve his/her problem, and shores up that language with the best tools available.

In this case, I half agree, because I think mobile development is best done using native platforms. But if you're doing web development, JavaScript is a must. And React is an elegant way to handle browser UI (Flow/Redux is also quite nice way to handle browser state, if a bit verbose).

I do share his concerns about the patent clause, and about Facebook's long-term commitment to the project, but at the level of personal projects, these concerns have not been enough to scare me away.

Re: Why I'm Not a React Native Developer

#44
I evaluated React Native for a project and decided to go with NativeScript instead for a number of reasons:

1. RN releases a new version every 2 weeks breaking my app every time. NS is a lot more conservative between releases.

2. I don't like mixing presentation and logic, RN encourages doing so, NS does not.

3. TypeScript is a first-class citizen in the NS environment, it is not in RN.

4. Angular 2 > React

5. NS created a smaller executable with better performance than RN for my test app.

6. I couldn't get RN to work with one of my older devices (KitKat), and even though dozens of developers had already reported the issue, they don't care. NS worked in the same device just fine.

7. All the tooling around the RN ecosystem is very confusing.

Re: Why I'm Not a React Native Developer

#45
post #29
post #28

Earlier quoted context omitted.

The point of having isConnected in the state is that it will change depending on OS events. Random is just used as an example

Even with state, his code is overly verbose and can be expressed in a much more idiomatic way. var weAreConnected = Math.floor(Math.random() * 10) > 5; if (weAreConnected === true) { this.setState({ isConnected: true }) } else { this.setState({ isConnected: false }) } } turns into var weAreConnected = Math.floor(Math.random() * 10) > 5; this.setState({ isConnected: weAreConnected }); It's almost like he wrote it in t…

[deleted]

Re: Why I'm Not a React Native Developer

#46
post #29
post #28

Earlier quoted context omitted.

The point of having isConnected in the state is that it will change depending on OS events. Random is just used as an example

Even with state, his code is overly verbose and can be expressed in a much more idiomatic way. var weAreConnected = Math.floor(Math.random() * 10) > 5; if (weAreConnected === true) { this.setState({ isConnected: true }) } else { this.setState({ isConnected: false }) } } turns into var weAreConnected = Math.floor(Math.random() * 10) > 5; this.setState({ isConnected: weAreConnected }); It's almost like he wrote it in t…

"overly verbose" might be giving too much credit... it's bad code

Re: Why I'm Not a React Native Developer

#47
The most part of cons is criticising JavaScript and NOT React Native. I know how JS works, and I LOVE IT. The only part of the post that I liked is when he talks about the license, all the rest is just bullshit from a person who don't like JS.

Re: Why I'm Not a React Native Developer

#48

Earlier quoted context omitted.

NativeScript doesn't have tight integration with React, and I don't really want to build that layer myself.

Angular 2 is pretty awesome and faster than React.

Source on that speed claim, please.

Re: Why I'm Not a React Native Developer

#50
post #7
post #4

tldr; Author doesn't like writing in javascript and fears that Facebook may some day decide to stop supporting React Native.

Ariel also doesn't like this clause in the React license: The license granted hereunder will terminate, automatically and without notice, if you (or any of your subsidiaries, corporate affiliates or agents) initiate directly or indirectly, or take a direct financial interest in, any Patent Assertion: (i) against Facebook or any of its subsidiaries or corporate affiliates, (ii) against any party if such Patent Asserti…

That alone makes it a non-starter
Post reply on HN