React & Redux
2015 has been the year where React gained traction, especially as more and more people started to complain about problems with the massively popular AngularJS framework at the end of 2014. News that Angular 2 will be incompatible with Angular 1 didn’t help enthuse the Angular community, either.
While Angular1 remains the most-starred project on GitHub, interest in AngularJS slowed, with React quickly closing the gap in 2016:
Perhaps a more telling indicator would be the npm download count for
Granted, the numbers don’t represent the actual number of users of those frameworks, and one has to take into consideration that Angular1 isn’t getting any nice updates since it will be replaced by Angular2. Not to mention, React is not a framework and can be used alongside AngularJS, so the two aren’t truly comparable.
Looking at the graphs, you might wonder: What in the world happened after August? The npm download count for React seemed to suddenly increase exponentially, and that was also when GitHub stars for React started to catch up with AngularJS’s stars.
Nonetheless, Facebook’s Relay will likely be a strong contender to Redux in 2017.
You Might Also Want to Read: Getting Started With React & Redux: An Intro
Other Frameworks of Interest
With the rewrite into Angular2, the team hopes to fix all the scaling issues with Angular 1 apps, and performance has been impressive so far. Moreover, other than also being capable of sever-rendering, Angular 2 will support web components, which Google believes to be the future of web development.
However, despite all the effort the Angular team has been putting in to help developers transition from Angular 1 to Angular 2, the AngularJS community is pretty split in opinions about the direction Angular is taking. The rewrite has also caused AngularJS’s community growth to stagnate and allowed React to mature, with its community and ecosystem growing larger each day.
However, using Meteor in production seems to be another story. People have learned from Angular1 (or even Rails to a point) that too much magic involves a lot of hidden complexity over time, and this has prevented Meteor from becoming mainstream. What’s more, despite having raised a lot of money, Meteor isn’t backed by a leading tech enterprise with a large pool of engineers like React and AngularJS are, so there’s also that to consider. Granted, AngularJS also has a plethora of issues even though it’s backed by Google, but using Meteor has an even greater investment risk as it’s a framework for both front and backend development. Hosting will also need to be married to Meteor in order to get the most out of the deployment ease they tout.
Not to mention, many developers aren’t exactly a fan of MongoDB (which has the reputation of being the “Snapchat of Databases”), and Mongo is Meteor’s default database. While Meteor is working on supporting SQL, it’s still not supported yet.
Needless to say, Meteor will likely remain niche going forward in 2016 or even 2017. Most professional developers will wait for any evidence that it can be used for developing large, complex applications.
ES6 At Last
Babel was the first that strode to help bridge the gap between ES5 and ES6 apps, while TypeScript’s support for ES6 played catch-up to Babel in terms of “progressiveness”. From GitHub stars it seems that Babel is the preferred transpiler, not to mention most React developers seem to use the Babel + Webpack combo.
You Might Also Want to Read: Setting Up a React Environment Using Npm, Babel, and Webpack
In addition, just look at the Google Trends Graph of the growth of interest for TypeScript:
Functional Programming is Becoming Mainstream
Or rather, a lot of functional programming concepts have been worming their way into mainstream programming, but recently the “functional programming paradigm” itself has gained tons of renewed attention with the rise of complex web apps.
Now, front-end web development appears to be all about reactive programming and functional programming. Generally, React+Redux is the most beginner-friendly solution for those comfortable with object-oriented programming, since it’s multiparadigm. In other words, React only requires developers to take a functional approach to UI while Redux encourages a functional approach to handling data. Everything else is still done OOP-style.
The most notable contenders are ClojureScript and Elm, but in general the growth of functional reactive programming pales in comparison with React+Redux. (However, Redux was inspired by Elm, so perhaps more developers will want to check out Elm):
Desktop Framework Showdown: Nw.js vs Electron
Nowadays a lot of software need to synchronize data over different platforms (namely, mobile and desktop). Many services start out as web apps before they ported to support desktop apps for better user-experience, especially since web app development is faster and easier to update. Not to mention, users can instantly try out web apps without having to install anything, so that eliminates a step in the funnel.
In the past, people were stuck with CEF if they wanted to use web technologies to develop the front-end UI of desktop apps. This wasn’t that easy, and the apps also weren’t truly cross-platform compatible. Node.js desktop frameworks have made building cross-platform apps easy, and the shift to using web technologies for desktop app development has been on the rise since 2014. No news there.
Yet there are two main players in the field: Nw.js (previously node-webkit) and Electron. While both are great choices and have their own advantages, this article is about trends.
Thus, let’s take a look at the GitHub Star history for both projects:
Although Nw.js came out earlier and is considered more mature, it appears that Electron is growing at an exponential rate, while nw.js is growing at a fairly linear rate.
But wait! Is looking at GitHub stars fair, considering GitHub is the one that developed Electron in the first place? Well, if you look at the interest on Google trends, it more or less reflects the same thing:
Electron is pretty new, but it’s used by established companies such as Slack, Microsoft (Visiual Studio Code), WordPress, and Sencha. (On a side note, Codementor also uses Electron to power the desktop app for our mentors). Thanks to Electron’s ease of use, the ecosystem and community grew very fast. This popularity is likely going to carry on into 2017, making Electron the framework of choice for desktop app development.
Mobile App Framework Showdown: React Native vs Ionic
Ever since React Native came out, people have been predicting 2016 would be the year of React Native and that it’s the future of mobile development with web technologies, considering how it can be used to build cross-platform apps natively. If you google about React Native app performance, you’d mostly find praises, especially when it’s compared to HTML5 hybrid apps since it runs a lot smoother. So, is 2016 the year of React Native? In terms of hype and interest, it sure seems to be meeting the expectations:
But what about the actual adoption rate? As of writing this article, React Native has not yet released a version 1 (still at version 0.26), so jumping in right now will require the courage and patience to deal with app-breaking changes that requires refactoring the entire codebase, along with a plethora of unexpected issues (Codementor also uses React Native to build our mobile app). Thus, let’s take a look at the approximate npm downloads of React Native vs Ionic:
Well, looking at the graph, it seems that React Native is on its way to overtake ionic as the framework of choice for cross-platform mobile development using web technologies.
In terms of the job market, React Native is also becoming more in-demand than Ionic:
Doing a quick search on AngelList job postings, the results more or less reflect the same thing, where there are 75 job postings for developers skilled with ionic while there were 65 job postings for react native developers as of May 30th.
Thus, familiarity with React Native will definitely be a nice bonus to your resume going forward in 2016.
The Future of Web API: GraphQL vs REST
GraphQL was aiming to sort of replace REST APIs, but considering how ubiquitous REST APIs are, this is an unlikely scenario:
At best, GraphQL would complement REST APIs doing the things it does better than REST APIs, but it won’t be replacing REST as some thought it was set out to do. Furthermore, GraphQL is still very new and tied in with Facebook Relay, so there aren’t any best practices or enough learning resources for people to pick the skill up en masse. Therefore, 2016 is likely too early for GraphQL to become a thing despite the strong interest and hype. 2017 may be different, but in 2016 it’s not going to be an urgent skill to acquire, with only 6 job postings for it on Angel List as of May 30th.
Or Become a Codementor!
Codementor is your live 1:1 expert mentor helping you in real time.