That is a "real issue." Frame it however you want, React Native is a compromise. Performance is a huge deal to users. It's not hard to tell when you're running one of these "one size fits all" apps.
To be fair, JS is a mess.
Although if I was a dev and asked to write JS, I wouldn't sabotage stuff! Probably just leave and get another job.
Seriously though, what do you mean by sabotaging stuff? What form did this take?
Web front end and JS just seems like insanity.
I don't know how anyone can use node...
What would you recommend to someone averse to js to try and change their mind?
I don't know how anybody could see what's going on with React and not be interested, it (at least for me) took what was once a very painful process of manipulating the DOM and working with the front-end and made it into an enjoyable and streamlined process. React actually brings order to what once a very messy and insane process.
I've used Node in production, it works very well for rapid prototyping. I could get a Node app up communicating with a diverse set of public APIs in minutes. It's not like Java or C# where I'm having to fumble around with a hefty IDE, a bunch of very strict typing, an entire compilation process and massively bloated web libraries. Node is a very lightweight alternative to that.
I think it's kind of a shame that the JS ecosystem has such a steep learning curve, which I think is where a lot of the hate stems from but once you learn it can be quite a powerful stack.
I guess it depends on what your concerns are:
• If you're worried about too many libraries to pick from, I'd just go with the most popular ones. React is a pretty solid choice.
• If you're worried about config being a pain, I'd recommend going with one of the starter tools like Create React App. Build tools are indeed a bit complex, but hopefully that's getting better over time.
• If you're scared by lack of type safety or worried about language quirks, I'd recommend TypeScript. (Flow is also quite good.)
In particular, TypeScript (and Flow) provides much more flexible static typing than I've used in any other mainstream language. You get the nice navigation, autocomplete, and static checking that you'd expect from a typed language, and I've found that I spend much less time needing to think about how to write my code in a way that appeases the type system.
Here's a tutorial that hits all of the points above: https://github.com/Microsoft/TypeScript-React-Starter
I'd recommend taking a look at Vue (https://vuejs.org/v2/guide/). You can write nontrivial and well-structured apps with just a text editor and not deal with npm/node unless you choose to. I also find it to be both simpler and more flexible than React.
But as a language for professionals who are willing to spend 40 hours a week on it and devote week after week to learning the internals of massive, rickety declarative APIs like Babel and Webpack, yes JavaScript has improved a lot for that audience.
You have to be a dedicated professional though, ideally a former Rubyist. If you’re not, stay away. Learn Python.
If you’re 20 and have learned just the basics of coding, but have not made any deep forays into software engineering, and can focus on a brand new codebase, and only support bleeding edge browsers, modern JavaScript is also ok too.
Personally I think it’s the wrong direction. I went back to ES5 and am developing a non-insane toolset for that language.
I love Clojure and from what little tried, I like Elm...
I had no idea I could do clojure > react nactive to get an app! I'll look into this, thanks!
I think they specifically mentioned that some of the problems were not due to RN, it was their use cases.
Did you fire him/her?
Both Kotlin and Swift are extremely elegant and modern languages with awesome set of features while JS lacks fundamental things like type(s)afety and is filled with inconsistency errors/problems etc.
And yeah yeah, JS is not complete garbage. I'm well aware of that, but there is no point bringing a broken knife into a gun fight.
Also, type safety isn't a "fundamental thing" it's a design decision made by the creators of the language.
Nevermind that it's easy to add types to JS these days if you really want them.
How you architect a system and manage state (and how simple you keep it) has far bigger implications than types.
Looking from the other side, this seems like "static typing gives me illusion of safety, and I miss it in dynamic languages". Sure, it might be justified for large projects in the long run, but
> taking the convenience of an untyped language is usually a poor/lazy architectural decision.
sounds like not understanding (or unwilligness to use?) trade-offs involved, due to personal preference.
I don't like these (unintentional?) claims of superiority based purely on personal preference. Static typing is just a tool, with its pros&cons.
Also they aren't exactly being rewritten in JS - the person who tweeted that later casually clarified that "well, actually" they're using JS as a sort of build system/integration over a still huge amount of native code.
And yeah I saw the tweet and the response, it sounds to me more like they're building specific components of applications with javascript, not really build systems.
It's almost like some of the best developers in the world like to use the right tool for the right job, and in many cases that tool appears to be javascript.
FIRE THEM!
If you consciously produce poor work because you disagree with that technical decision, rather than either going along with it or finding more a more appropriate venue to express that disagreement, that belies an attitude that's seemingly at odds with being a member of a collaborative workplace.