Live data from Hacker News

Why I'm Not a React Native Developer

arielelkin.github.io

61–70 of 318 posts

Re: Why I'm Not a React Native Developer

#61
post #21

This is simply a list of things the author doesn't like about JS, very much of which is practically solved by Flow/TS and ESLint. He also makes some of the React examples quite a bit more complicated than they need to be. Declarative UI is very simple! Here's the same code, using both class and functional styles (whichever you prefer), in a much more succinct style (11 LOC vs 49): class Root extends Component { rende…

> This is simply a list of things the author doesn't like about JS, very much of which is practically solved by Flow/TS and ESLint.

That's definitely not a fair characterization of this article.

Concerns about roadmap and patent usage show up before any concerns about JS.

Edit: Though I agree, a strangely large amount of the article is dedicated to "Why I just don't like Javascript."

Re: Why I'm Not a React Native Developer

#62

Ughhh. It's fine if you prefer statically-typed languages to dynamically-typed ones, but that's a preference, not a reason to try and say that JS is objectively terrible. Same with switch fallthrough, same with error handling, same with half his issues with JS. There are some legitimate grievances tucked in there, but the author lost me by pretending that his preferences were universal.

TypeScript is a JavaScript best practice at this point. It's a type safety net on top of dynamic types, so you get the best of both worlds. TypeScript has a flag that prohibits switch fallthrough, for instance, though that's an easy one to set up a linter to catch. One reason I prefer NativeScript to React Native; they are embracing TypeScript and Angular vs. React. I find Angular 2 to be more flexible, but that I fr…

TS over JS isn't best practice yet: Some of us like dynamic typing.

Re: Why I'm Not a React Native Developer

#65
post #51

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…

> my biggest takeaway was the more abstract parts of his post, such as patents and uncertain roadmap. These are very REAL problems. I would say the patent issue is more FUD than a real issue; he praises Swift but Swift has a very similar patent grant and termination clause. The key difference is that the Swift grant terminates if you end up in a patent dispute with Apple over something related to Swift; the React gra…

My point was not about the details, but about the uncertain nature of an open source project driven by a company. The patent issue is just one of the "symptoms" of this problem. When someone open sources their technology and adds a set of detailed clauses that adds some restriction (doesn't matter if it's a "real" restriction or not), it means they couldn't go all out. It also means as a user, you do have reasons to be cautious about it, not because of what the license says in detail, but because of the reason behind the behavior.

But anyway, this patent issue is just one part of the larger issue, which is uncertainty. When Apple or Android changes the API policy in the future, you'll be struggling to adapt to the new reality with what you have. Sometimes it works, but sometimes it doesn't. Currently it does make sense for some people to build using react native, but if I were you, I would rather learn Android. Really, if you already have iOS experience, a lot of the paradigm is pretty similar and it won't be super difficult to learn.

This "cross platform" concept used to be valuable maybe in 2010 when it wasn't clear what mobile platforms would be dominant (with windows phones, blackberries, and even samsung launching their own developer platforms). But it's 2016 now, and we're pretty sure it's either iOS or Android. All you need is just those two platforms.

Re: Why I'm Not a React Native Developer

#66
post #51

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…

> my biggest takeaway was the more abstract parts of his post, such as patents and uncertain roadmap. These are very REAL problems. I would say the patent issue is more FUD than a real issue; he praises Swift but Swift has a very similar patent grant and termination clause. The key difference is that the Swift grant terminates if you end up in a patent dispute with Apple over something related to Swift; the React gra…

> So the whole issue boils down to "what if you get into a patent dispute with Facebook over a patent that doesn't relate to their core web UI tech". Which...I dunno, is that a real concern?

Yes!

On one hand, tons of HN commenters claim to be opposed to 1) NPEs going after smaller software concerns 2) giant ecosystem software vendors being the only choice when it comes to mobile/web technologies, but then this amateurish ¯\_(ツ)_/¯ mindset carries the day on easily graspable concepts that directly affect the likelihood of patent infringement.

> But if my core business is making apps, then every patent I might have is likely to be covered by both patent grant termination clauses. So the issue is...?

Given the increasingly broader markets that Facebook, Amazon, et al. want to break into, the issue is for businesses whose core business doesn't relate to apps but that still want to leverage modern software (aka all of them).

Stop brushing off issues you don't understand and calling them FUD.

Re: Why I'm Not a React Native Developer

#67
post #7

Earlier quoted context omitted.

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…

To my reading, there are two separate items: a copyright license and a patent grant. - The former allows you to make copies of the software - The latter protects you from Facebook claiming patent infringement arising from the use of React Native (aka, Necessary Claims). It doesn't necessarily mean they have such patents but if they do, you are protected. So if the reciprocity clause in Facebook's patent grant is a pr…

Yep. And depending on the details of the concern, so would an Apache or Mozilla licensed project, since they have explicit grants with termination clauses only slightly narrower than React's.

Re: Why I'm Not a React Native Developer

#68
post #14
post #5

You could have just said "I don't like Javascript" and ended the post there.

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

Well then, if no true programmer likes dynamically typed languages, I'd better make some calls...

Hey, RMS, Abelson, Sussman, Steele, Guido, Larry, Matz, Richard Gabriel, ESR, DHH, Flatt, and Felleisen, it turns out you're not true programmers! Okay, cool.

Needless to say, I claim No True Scottsman.

Re: Why I'm Not a React Native Developer

#69

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.

No. I'm sorry, I'm sure that you think Angular 2 is great. It might even be faster than React. But I'm not falling for it this time. Never again.

Fool me once, Angular team...

Re: Why I'm Not a React Native Developer

#70

Earlier quoted context omitted.

TypeScript is a JavaScript best practice at this point. It's a type safety net on top of dynamic types, so you get the best of both worlds. TypeScript has a flag that prohibits switch fallthrough, for instance, though that's an easy one to set up a linter to catch. One reason I prefer NativeScript to React Native; they are embracing TypeScript and Angular vs. React. I find Angular 2 to be more flexible, but that I fr…

TS over JS isn't best practice yet: Some of us like dynamic typing.

For what purpose is dynamic typing ever useful except "it’s faster to develop"?

With a proper type system (see: Haskell, Scala) and parametrized types, you can do everything that’s reasonable in a dynamically typed language, too.

Post reply on HN