7 Strengths of #ReactJS Every Programmer Should Know About

7 Strengths of #ReactJS Every Programmer Should Know About:  #JavaScript

  • React is blazingly fastIt is actually much faster than manually manipulating the DOM, which is the reason why Flipboard has built their own React-Canvas library to achieve 60fps performance on the mobile web.Modifying the DOM after every change can be slow, therefore React creates a simplified JavaScript version of DOM called VirtualDOM and uses a diffing algorithm to apply only necessary changes to the real DOM.JavaScript is a reasonably fast language, and typical web apps consist of only several hundreds of DOM elements.
  • They have invested years into creating the Facebook site, so a complete rewrite just to use React would not be justifiable.It is really easy to use React with jQuery, Angular, Backbone, or any other JavaScript framework.4.
  • You can create truly native apps with JavaScript and other tools you know from the web.
  • Some of the biggest innovations in React were actually inspired by ClojureScript, some were taken from Ember, and some come from Elm.Whether it is ClojureScript, Elm, Angular, or Ember, these great people are part of our Reactive Community, and they remind us why we should work together every day.The React ecosystem is extremely focused on developer experience and productivity.
  • But Facebook is not the only big supporter of the React community: Yahoo, Mozilla, Airbnb, Netflix, and other big companies use React in production and have supported the community with useful open-source libraries and tools.6.

In the past six years, we have seen a huge rise of JavaScript on the web. It has become a prominent server-side language and a popular compile target for other languages. Offline-first SPAs have…

@ReactiveConf: 7 Strengths of #ReactJS Every Programmer Should Know About: #JavaScript

7 Strengths of #ReactJS Every Programmer Should Know About

Do you want to learn more about React and other modern technologies? Get tickets for ReactiveConf 2017 now on reactiveconf.com !

In the past six years, we have seen a huge rise of JavaScript on the web. It has become a prominent server-side language and a popular compile target for other languages. Offline-first SPAs have turned into a term.

JavaScript is finally conquering desktop and mobile platforms through hybrid apps and technologies such as Electron or React Native.

In the past three years, another revolution has started. Jordan Walke, a programmer at Facebook, created React.js. React has since then changed the way hundreds of thousands of developers write JavaScript code.

These are the reasons behind React’s tremendous success:

1. Simpler code with fewer bugs

React reduces user interface complexity, which is its single most compelling feature and the reason why it’s so awesome. It is the first mainstream JavaScript framework built on the idea of functional programming. That’s great because functional programming leads to code that is easier to reason about.

It is so much easier to debug! Avoiding side-effects and embracing immutable values make finding problems in your code much easier.

On top of that, the React community has built an amazing set of developer tools, e.g. a debugger that lets you travel back in time.

2. React is blazingly fast

It is actually much faster than manually manipulating the DOM, which is the reason why Flipboard has built their own React-Canvas library to achieve 60fps performance on the mobile web.

Modifying the DOM after every change can be slow, therefore React creates a simplified JavaScript version of DOM called VirtualDOM and uses a diffing algorithm to apply only necessary changes to the real DOM.

JavaScript is a reasonably fast language, and typical web apps consist of only several hundreds of DOM elements. React also supports efficient tactics to achieve 60fps even in much more complex apps.

3. It plays nicely with your existing code

Facebook engineers designed React to integrate nicely with existing codebases. They have invested years into creating the Facebook site, so a complete rewrite just to use React would not be justifiable.

It is really easy to use React with jQuery, Angular, Backbone, or any other JavaScript framework.

4. Learn once, write anywhere

Users spend 18x more time in native apps than on the mobile web. Most products have to cover at least the web, iOS, and Android to be successful today.

That usually means tripling the cost of software development as you develop and maintain each platform separately. In such diverse environment, it can be really tricky to provide a consistent experience for users.

Hybrid apps might seem to be a solution. There is a lower barrier to entry, you can reuse your code among all platforms, and it’s much easier to maintain consistency with a single cross-platform team.

Unfortunately, hybrid apps often don’t deliver a high-quality user experience. And angering your users is risky business because mobile users are unforgiving, which Facebook has learned the hard way.

React Native makes a real difference. You can create truly native apps with JavaScript and other tools you know from the web. React Native supports hot reloading, and tools like Reploy and CodePush can instantly deliver your app to customers and testers.

Are you wondering about code reuse between platforms? Facebook shares 87% of the Groups app codebase between their Android and iOS platform.

5. Reactive community is always willing to help

Facebook is going to great lengths to embrace community innovation. Speakers from competing technologies like ClojureScript, Cycle.js, and Elm give talks at the official ReactJS conference. Some of the biggest innovations in React were actually inspired by ClojureScript, some were taken from Ember, and some come from Elm.

Whether it is ClojureScript, Elm, Angular, or Ember, these great people are part of our Reactive Community, and they remind us why we should work together every day.

The React ecosystem is extremely focused on developer experience and productivity. The community has created an incredible number of tools and projects that help everyone write better: BabelJS, Redux, React Router, Immutable.js, React Native Playground, Flow, or Relay are just a few out of many.

Facebook itself has heavily invested into working with the community. They hired the BabelJS and Redux creators and invested into both projects. But Facebook is not the only big supporter of the React community: Yahoo, Mozilla, Airbnb, Netflix, and other big companies use React in production and have supported the community with useful open-source libraries and tools.

6. It’s still JavaScript

Elm, ClojureScript, PureScript, and other great languages compete with React.js to be the coolest kid on the block. They all have interesting super-powers JavaScript can’t match. However, they have a much higher barrier to entry in the form of an entirely new language and ecosystem.

React.js brings in revolutionary concepts, but it is still JavaScript. If you haven’t done much functional programming before, it is probably easier and safer to start with React.js

7. It will affect you anyway. Better prepare for that

Running away from the ideas behind React is impossible. Both Angular2 and Ember have adopted some key ideas from React, and the idea of a virtual DOM has made an even bigger impact in the functional communities of ClojureScript and Elm.

React.js is not just a library––it’s a phenomenon that has forever changed the way we program. Don’t miss the train. Start looking into it today!

React is changing the way we build web, mobile, and desktop front-ends. Thousands of programmers are experiencing an invaluable boost in productivity thanks to React.

It is not the perfect choice for every project, but it may help you with yours––and you’ll most likely encounter React more and more often, so it’s definitely worth your attention.

Many thanks to @notbrent , @steida , @nikgraf , @jlongster and @rtfeldman for reviewing this article!

– By Samuel Hapák, co-organizer of ReactiveConf. Republished from the VacuumLabs blog .

7 Strengths of #ReactJS Every Programmer Should Know About