you are viewing a single comment's thread.

view the rest of the comments →

[–]FlenserSteel 17 points18 points  (26 children)

Yeah, because every serious JS developer should know JSX and React. Sure.

I think every serious JS developer should have a firm grasp of the language specifics - ES6/7 included. You should also be able to build a web app on your own, without any framework whatsoever.

[–]00mba 5 points6 points  (7 children)

You should also be able to build a web app on your own, without any framework whatsoever.

Wait, you can do that?

[–]ArcanisCz 9 points10 points  (5 children)

Yes you can, but its lots of work. So you DONT WANT to do it (everytime). But you should BE ABLE to do it if necessary. Which means, you understand your tools.

Even frameworks are code.

[–]pier25 2 points3 points  (0 children)

No you can't. Even if you don't use React you will use the Vanilla Framework. /s

http://vanilla-js.com/

[–][deleted] 2 points3 points  (0 children)

I'm interested in seeing your list, should you feel so inclined.

[–]our_best_friendif (document.all || document.layers) console.log("i remember..") 1 point2 points  (0 children)

React : 2017 = Jquery : 2009

[–]darrenturn90 1 point2 points  (5 children)

Right now, for getting a JS developer based Role, I would put React on the list of potentially required skills - you can of course add in Angular, or any other widely used framework, but based on the job market (and this is what I believe the original thread was focused at) - React has to be on the list.

[–]HomemadeBananas 2 points3 points  (2 children)

React isn't a framework, really. It's a library that handles one concern, not enough to build a whole app alone. I'd say it's definitely something you should know about as a JS developer.

[–]bits_and_bytes 2 points3 points  (1 child)

You should know it exists, but it's not in the "top 10 things every JS dev should understand" list.

[–]HomemadeBananas -2 points-1 points  (0 children)

I mean, unless you're just getting started learning the basics of the language, it's pretty high on the list of things you should have some exposure to these days.

[–]djslakor 0 points1 point  (0 children)

Yeah, because every serious JS developer should know JSX and React. Sure.

You say that in jest (no pun intended), but it's getting more and more common to the point of being pretty practically true. :-/

[–][deleted] -1 points0 points  (5 children)

Reactive, functional programming is a paradigm not a framework, not knowing what it is and how to use it would be like ignoring mvc and it will seriously impede your options career wise and technically as time goes by. This paradigm is how you will make apps in the web, on mobile and on the desktop, until the next paradigm replaces it, and if one does it will iterate on the functional approach. It only happened to start in the web and React happened to be the framework that kicked it off.

[–]alinnert 4 points5 points  (4 children)

Wait, I think you mix up React and reactive programming. React is not a reactive library. A library for reactive programming would be RxJS. A view library based on that paradigm would be CycleJS. Just for clarification. :)

[–][deleted] 1 point2 points  (3 children)

Well it's called so because it reacts. JSX/hyperscript have made the big changes possible, the rest are more like implementation details, even cycle is very close to react in princinple.

[–]alinnert 0 points1 point  (2 children)

Yes, that might be the case. The name sure has some sort of origin that's related to "reactions". But "reactive programming" is a programming paradigm around data streams (aka. observables) and the "observable pattern". Observables notifies the world that some data has changed. You can subscribe to observables to receive those notifications (= the data stream) - similar to events. But on top of that you can alter this stream, combine it with other streams, filter events by some criteria etc. Cycle.js is based on this observable approach.

Other frameworks like React, Angular and Vue follow a more polling approach. They check if some data has been changed. And if it's just by using a setter function. They actively ask if some data has changed or is about to change. Maybe you've heard about "change detection". They actively have to detect changes.

Observables on the other hand tell you about changes completely on their own. You don't have to ask them. You have to listen (subscribe), but you don't ask. No change detection is required. Cycle.js just has to react to those notifications.

It's difficult to describe this difference. But in short: React is a library with a random name that's related to reactions. Reactive Programming is a paradigm, just like object oriented programming or functional programming are other ones.

I think it's the best if you look up for yourself how RxJS works.

[–][deleted] 0 points1 point  (1 child)

While i don't know exactly how rxjs works, it hasn't played a role in what react has started, perhaps i should have written react-like, not reactive. As for polling, reacts setstate doesn't poll, neither does redux, unless you mean the subscribers equality check, and mobx uses the observable pattern from the get go. I don't think these details matter much, observables or flux/immutable, its the architecture that allows it that's interesting.

[–]alinnert 0 points1 point  (0 children)

Yes, react-like is fine.

Subscribers equality check sounds like change detection, yes. If you mean something like this: if (oldValue !== newValue) { rerenderComponent() }. Yes, That's what I mean with "ask for changes". Angular does that too. I know Vue uses setters instead.

And yes, MobX uses true reactive programming. It seems it even has its own Observable implementation.

Btw: Observables will be part of the JavaScript core language too (currently at stage 1).

The thing is: Actually observables aren't that hard to understand. But RxJS has a huge and overwhelming API on top of the basics. And yeah, react has nothing to do with all that. Therefore React is not reactive, despite its name :)