DEV Community

loading...
Cover image for Top JavaScript Frameworks For 2019
LambdaTest Team

Top JavaScript Frameworks For 2019

nikhiltyagi04 profile image nikhiltyagi04 Originally published at lambdatest.com Updated on ・19 min read

An extensive number of programming languages are being used worldwide today, each having its own purpose, complexities, benefits and quirks. However, it is JavaScript that has without any doubt left an indelible and enduring impression on the web, to emerge as the most popular programming language in the world for the 6th consecutive year.

Stack Overflow Annual Developer Survey 2018 involving more than 100,000 respondents indicated that close to 70% of developers worldwide consider JavaScript as their favourite programming language edging out dominant mainstream rivals like Java, Python, PHP and C# by a huge margin.

The pivotal reason for JavaScript’s widespread popularity and dominance lies in its versatility and flexibility. Not only is JavaScript regarded as the language of the web for traditional client-side use, but it is also now being used for server-side applications along with native mobile app development, desktop applications, machine learning for automation, progressive web apps and more.

There are hundreds of JavaScript frameworks and libraries available at your disposal with dozens more being launched every month which can make the task of choosing the right frameworks for your next project an intimidating and daunting task. To help you out, I have curated the list of top 11 JavaScript frameworks for 2019. I have compiled this list based on the statistics provided by the survey of StateOfJs, HackerRank and have also referred to SimilarTech for usage statistics.

Front End Frameworks

1. React

image

The first place in our list of top JavaScript frameworks for 2019 without a doubt goes to React JS. React is a highly efficient and declarative JavaScript library used for building interactive UIs. It was created by Facebook engineer Jordan Walke and launched in May 2013. In the past 5 years, React has overtaken rival Angular JS and firmly established its dominance. React is used to create reusable user-interface components for each state, that can automatically update and render data without the need of reloading the page. Remember though, that React is a library and not technically a framework. It is mainly used to handle “V” (view) layer in the MVC(Model View Controller) model for web and mobile apps. Apart from web applications, React can also be used to create native mobile application supported by both android and iOS. With so much to offer, React JS reigned 2018 over other frameworks and I believe React JS will continue to dominate in 2019 too.

Usage Statistics

  • 475k websites on the web are powered by React.
  • 64.8% of javascript developers are currently using React.
  • Ranked 1st most popular front-end javascript framework in State Of JS survey.
  • Github – 120.5k stars, 21k forks and 1200 contributors.

image

Why REACT Is One Of The Top JavaScript Frameworks For 2019?

  • High performance – React is renowned for its high efficiency and flexibility. It can be easily integrated with other frameworks without any hassle. Can be used for both client side as well as server side.
  • Abundant Resources – As react is maintained by Facebook, there is a huge trove of documentation and resources available on the web which makes learning curve of react much smoother than its chief rival AngularJS.
  • Backward Compatibility – Transitioning or migrating from older to new versions is fairly easy in react using CodeMods.
  • Easy to maintain component structure – Component based architecture helps to increase reusability to code and ease of maintenance in large scale projects.
  • Rich community – React has close to 1300 contributors on GitHub which is more than any other library/framework.
  • Unidirectional Data Flow – One way/Unidirectional downward only data binding in react via flux controls helps to make sure that any changes made to child element structure don’t affect the parent element structure

Cons Of Using REACT

  • Bloated and complex – Many developers might find react too complex and bloated for their purpose as compared to Vue JS. Added complexity that coms align with react might be unnecessary for small scale projects
  • JSX – The use of JSX adds another layer of complexity. JSX is a pre-processor, it adds XML syntax extension to JS. Although JSX helps to code react in a safer and faster manner, it is difficult to grasp for new developers.
  • Need for Assembly-Tools – React requires a wide array of assembly tools to function properly and be compatible with other libraries and frameworks.
  • SEO problems – webpages built with react are known to face issues with indexing by search engine crawlers/bots.

PROMINENT USERS
Netflix, Yahoo, Airbnb, Instagram, Facebook, WhatsApp , Sberbank, PayPal, Microsoft, BBC

2. Vue

Holding the second place on top JavaScript frameworks for 2019 is Vue Js. Vue is an open source javascript framework meant to streamline UI design. It was created by Evan You and released in 2014. The last couple of years have a witnessed an explosion in popularity of Vue which has grown by leaps and bounds outpacing AngularJS rival framework by google in 2018 State of JS survey.

The key focal point of attraction of Vue is its progressive nature which helps it to adapt to developer’s needs. It is built on concepts from other frameworks and libraries like angular and react and offers a compact lightweight solution incorporating all the best features and practices.

Usage Statistics

  • 64k websites are powered by Vue.
  • 28.8% of javascript developers are currently using vue.
  • Ranked 2nd most popular front-end javascript framework in State Of JS survey.
  • Github – 125k stars, 18k forks and 253 contributors.

image

Why VUE.JS Is One Of The Top JavaScript Frameworks For 2019?

  • Fast Configuration: Vue has an inbuilt MVC model which makes configuration quick and easy compared to angular and react.
  • Flexibility: Flexibility and modular nature of Vue helps developers with past experiences on other frameworks and libraries to quickly adopt Vue with minimal effort.
  • Easy Learning curve: Learning curve of Vue is much easier than Angular and react. Only knowledge of HTML and JavaScript is required.
  • Lightweight Size: Vue is highly lightweight and compact in size compare to all other major JavaScript frameworks like angular and react. Compressed version of Vue is only 18 kb in size.
  • Integration Capability: Vue can be used to build both SPAs and large-scale complex applications as well with easy integration with server-side frameworks like Laravel, Symfony Django etc.
  • Transitions: Vue makes it easy to add transitions to elements when the are added or removed from the DOM.

Cons Of Using VUE

  • Poor Support: Vue doesn’t offer a big resource collection to new users on a scale similar to that of angular and react. Considering a comparatively lower market share, developers who are new to Vue js might not find adequate support and resources.
  • Small Community: A large chunk of Vue developer community is from non-English speaking eastern European countries. Community engagement used to be fairly low, However that is expected to change in 2019 as Vue saw a mammoth rise in popularity by the end of 2018.

PROMINENT CLIENTS
StackOverflow, 9gag, Adobe, Xiaomi, Grammarly, Alibaba

3. Angular


Angular is a front end web applications framework based on typescript. AngularJS or Angular 1 was built by google engineers when Misko Hevery and Adam Abrons and launched in 2010 while angular 2 was launched in 2016.

Angular is arguably the oldest modern javascript framework that let users built dynamic interactive websites. In spite of being the oldest, Angular JS is still considered as developer’s first choice for a heavy volume of developers worldwide which is why it is one of the top JavaScript frameworks for 2019.

Angular enabled developers to build highly efficient and robust Single page applications rather than static HTML websites. Google completely revamped the original framework and released a radically different and improved typescript Angular 2. Angular 2 introduced component-based architecture, improved dependency injection, logging service and inter-component communication.

The latest current version 7 was launched in September 2018 and new updates are released every 6 months. Version 7 has introduced vast improvements in Performance, Angular Material & CDK, dependencies for Typescript version 3.1, RxJS 6.3, Node version 10. Virtual Scrolling and content projection have also been introduced.

Usage Statistics

  • 350k websites on the web are powered by AngularJS/Angular2+ versions.
  • 23.9% of javascript developers are currently using Angular.
  • Ranked 3rd most popular front-end javascript framework in State Of JS survey.
  • Github – 44.5k stars, 11.5k forks and 840 contributors.

Why ANGULAR Is One Of The Top JavaScript Frameworks For 2019?

  • Data Binding Apart from 2-way binding in AngularJS, angular 2 and beyond introduced 3 other types of data-binding namely - one-way property binding, event binding and interpolation.
  • Enhanced RXJS RxJS library used in Angular to handle async data calls. It allows hadling events independently in parallel to execution. This leds to lightning fast compilation time.
  • Abundant resources and support: Google offers a rich treasure trove of resources and rolls out new updates and improvements every 6 months.
  • Support for Progressive web applications: Angular is the first framework to integrate features for development of progressive web applications.
  • Long-Term Support One of angular's greatest strengths is that it is backed by a giant like Google which has pledged long term support for Angular. Igor Minar and Steven Fuin reiterated their commitment in ng-conf 2017 Keynote.
  • Native mobile app: NativeScript powered by angular enables development of native mobile apps for both iOS and android.

Problems with Angular.

  • Difficult Syntax: Angular has made a big leap in terms of syntax complexity after adopting TypeScript in angular2 and beyond. Yet it poses a steep learning curve for anyone making a transition from vanilla JS or jQuery.
  • Migration: It is complex to migrate from older angular version especially from AngularJS to angular 7.
  • Steep learning curve: out of the three top javascript front-end frameworks, Angular has the steepest learning curve and suffers from a very high rate of abandonment. A large base of angular users has moved to Vue and react.
  • Knowledge of MVC: A crucial prerequisite for using angular is the need to have a thorough understanding of model view controller architecture.

PROMINENT CLIENTS
Upwork, Freelancer, Udemy, YouTube, Paypal, Nike, Google, Telegram, Weather, iStockphoto, AWS, Crunchbase.

4. Ember

The 4th framework in our list of top JavaScript frameworks for 2019 is Ember.js. Ember is an open-source front end javascript framework used for building robust web applications. Ember was originally known as SproutCore framework in 2010. In Dec 2011, Yehuda Katz, the brains behind jQuery launched ember. Ember is an opinionated framework which works on the principle of MVVM (Model-view-viewmodel) pattern. It is packed with Glimmer engine that increases rendering speed. Prominent features include data binding to link two properties and inspection tool for debugging errors.

Usage Statistics

  • 7k websites on the web are powered by Ember.
  • 6.3% of javascript developers are currently using Ember. Its popularity has stagnated over the last few years.
  • Ranked 4rd most popular front-end javascript framework in State Of JS survey.
  • Github – 20k stars, 4k forks and 750 contributors.

Why EMBER Is One Of The Top JavaScript Frameworks For 2019?

  • Ember templates: One of the most striking features of ember is templates which help to create stunning UI. Templates are coded with Handlebars language which drastically reduces the necessary code. Templates are updated automatically as soon as moderation is made to their underlying data.
  • Ember CLI: Ember-CLI is a command line addon that is packed alongside Ember stack. Ember-CLI provides support for techs like Sass/Less, CoffeeScript, Handlebars etc.
  • Ember is shipped with Inspector tool to helps with debugging
  • Convention over Configuration: Ember is based on Convention over Configuration (CoC). This helps devs to focus more on functionality and building apps faster and worrying less about planning High performance

Problems With Ember

  • Losing Market share: Ember has seen massive stagnation over past 5 years and faces obscurity in future. Big companies like Netflix and Airbnb have dumped ember and moved to other frameworks like react.
  • Lack of Up to date resources: Ember has a very poor support offering due to a shrinking community and is plagued with outdated resources.
  • Too complex to be implemented in small projects. Takes too much time to configure and use which eats away into productivity.
  • In comparison to react and Vue, ember is extremely complicated and difficult to learn especially for beginners.

PROMINENT USERS
Apple music, Groupon, Vine, Twitch, Chipotle, Atlas.io, sitepoint

5. Polymer

image
The final front end Framework in our list of top JavaScript frameworks for 2019 is Polymer.js. Polymer was created by a team of engineers at Google and launched in 2015. It is an open source JavaScript library that is used to create cross browser compatible web applications using reusable web components. All major Google services are built using polymer namely – YouTube, Google play music, Google play movies, Allo, Google I/O and Google Earth. Polymer allows developers to create their own components using HTML and CSS and add interactions using JavaScript.

Usage Statistics

  • 4k websites on the internet are powered by Polymer.
  • 3.8% of javascript developers are currently using Polymer.
  • Ranked 6th most popular front-end javascript framework in State Of JS survey.
  • Github – 20k stars, 1.9k forks and 140 contributors.

image

Why POLYMER Is One Of The Top JavaScript Frameworks For 2019?

  • Polymer.js enables developers to build their own custom HTML elements.
  • Lightning Speed – compared to other front end JavaScript frameworks, polymer clocks lightning fast speed especially on chrome and safari browser.
  • Supports both One-way and two-way data binding.
  • Cross browser compatibility: polymer was designed especially with keeping cross browser compatibility testing in mind

Problems With Polymer

  • Unlike its peers, it lacks server-side rendering.
  • Not abundant resources: As compared to react Vue and angular, polymer has scarce resources available on the net and has a very small community which has shunted its growth in popularity .

PROMINENT CLIENTS

Google Apps like youtube, play music, Electronic Arts, ING, Coca Cola, McDonald’s, IBM, General Electric

Backend Javascript Frameworks

6. Express

As far as backend is concerned, the top JavaScript frameworks for 2019 is Express.js. Express is an open-source standard framework for Node.js. Express is used to create server-side web applications and APIs. It is critically acclaimed for its simplicity, flexibility, scalability and minimalism by node js developers worldwide. Launched by TJ Holowaychuk in Nov 2010, Express JS is primarily used alongside Angular or react and forms the server-side framework layer in MEAN or MEARN stack.

Usage Statistics

  • 100k websites are powered by Express.js.
  • 64.7% of javascript developers use Express.js regularly.
  • Ranked 1st most popular backend javascript framework in State Of JS survey.
  • Github – 42k stars, 7k forks and 240 contributors.

Why EXPRESS Is One Of The Top JavaScript Frameworks For 2019?

  • Wide Support: As stated earlier, express.js has the biggest community of users in the world among all backend javascript frameworks. It has a vast amount of resources available to bring beginners up to speed.
  • Plugins: Unlike meteor.js that is plagued with poor plugin functionality, Express supports a wide variety of powerful plugins to assist developers.
  • Robust: Not only is express.js minimalist and lightweight in size, it is less prone to errors.
  • Reusability: Built in router in Express.js promotes code reusability to speed up workflow.

Problems With Express

  • Tedious Nature: Express.js developers need to get involved in a lot of tedious manual tasks which can stretch development cycle.
  • No Built in error handling: Express lacks one critical feature, it does not have built in error handling which can make debugging code very time consuming and slow down development time.

PROMINENT CLIENTS

IBM, Uber, Paypal, Netflix, Airbnb Walmart ebay Linkedin

7. Next

The 2nd backend framework in our list of most popular JavaScript frameworks of 2019 is Next,js. Next is a server-side rendering tool which has earned the status of universal back-end framework for React. Next.js was created by Zeit Startup and launched in 2017-2018. Apart from server-side rendering Next.js also offers client side rendering along with automatic code separation and hot code reloading. Next.js is being tipped as a potential challenger to end the dominant reign of express.js.

Usage Statistics

  • 7k websites around the world are powered by Next.js.
  • 8.6% of javascript developers are using Next.js currently.
  • Ranked 2nd most popular backend javascript framework in State Of JS survey.
  • Github – 33.7k stars, 3.7k forks and 604 contributors.

Why NEXT Is One Of The Top JavaScript Frameworks For 2019?

  • Armed with default server-side rendering.
  • Automatic Code Splitting: Next supports automatic code splitting. This boosts page reload speed and it highly beneficial for better serp rankings
  • Zero Setup: Next requires zero setup and is production ready right out of the box.
  • CSS Support: Next.js is packed with styled-jsx which offers complete CSS support
  • Supports Hot Code Reloading: loads only those DOM elements that have been modified and not the entire page.

Problems With Next

  • Lack of support: As next JS is still premature and has been out for just over a year, it lacks the level of support that it is more mature and older peers enjoy.
  • Next.js is limited to be used along react and not other popular front end javascript frameworks like angular and Vue

PROMINENT CLIENTS
Marvel, Invision, Nike, Docker, NPM, Magic Leap, Ticketmaster

8. Meteor

Meteor JS is an open-source backend JavaScript framework developed by Meteor Development Group. Meteor is written in Node JS and is used to build cross platform web and mobile applications for both android and iOS. Meteor was launched in January 2012 and stable release was rolled out in May 2018. Initially meteor was released under the name Skybreakin 2011. Meteor is armed with Blaze engine but can also be used along with popular front end libraries/frameworks like Angular and React.

One of the biggest frustration for developers is the need to be up to date with multiple languages for building simple application. Meteor eliminates this burden by encapsulating both front-end and back-end to just one language – Vanilla JavaScript. Moreover thanks to its modular library structure, Meteor is quite easy to set up and use. By providing all these benefits meteor is one of the top JavaScript frameworks for 2019.

Usage Statistics

  • 19k websites are powered by Meteor.
  • 4.5% of javascript developers are using Meter in 2019.
  • Ranked 4th most popular backend javascript framework in State Of JS survey.
  • Github – 40.7k stars, 5k forks and 400 contributors.

image

Why METEOR Is One Of The Top JavaScript Frameworks For 2019?

  • Simplicity: Meteor handles both client-side front end and server side back end rolled into one single language – pure vanilla JavaScript. This makes meteor the easiest to comprehend for beginners among all other rival frameworks.
  • Extensive packages and libraries: meteor offers a wide array of official community libraries and smart packages which are highly reliable, up-to-date to enhance functionality and speed up development process.
  • Real Time testing tool: Meteor has its own inbuilt testing tool called velocity which can be integrated with the most popular JavaScript frameworks for testing like Mocha, Jest and Jasmine.
  • Helpful Community: Meteor has a vast community that offers extensive tutorials resources and an endless stream of documentations which helps beginners to easily adopt the framework.
  • MongoDB: Meteor supports mongoDB database which is much better than traditional relational databases like SQL.
  • Live reloading: Meteor supports live reloading of pages every time the code is modified and reloads only those DOM elements that have been altered and not the entire page.
  • Native Mobile apps: Meteor can be used for building robust native cross platform mobile applications for both Android and iOS using the Cordova integration.

Problems With Meteor

  • Branding – Meteor has seen a rapid decline in popularity with the majority of its users shifting to other more popular frameworks like react angular vue js for frontend and express.js and next.js for backend.
  • Meteor has poor and complex integration compared to its rivals. Not suitable for beginners.
  • Supports only MongodB noSQL database over much popular and widely used relational SQL database.

PROMINENT CLIENTS

Mazda, IKEA, Honeywell, mtv, efounders, tech stack, hazeorid

Test Automation Frameworks

9. Jest

Jest JS is an open-source JavaScript testing library created by Facebook in 2017. Even though Jest is primary used for testing React and React Native apps, Jest is still a universal testing tool which can adapt to any JavaScript library or framework, making it a great option as top JavaScript frameworks for 2019. Unlike Mocha, Jest can be used out of the box with minimum configuration and is ideal for snapshot testing. Another remarkable feature of Jest is its ability to seamlessly integrate with Babel and support all JavaScript derivatives languages like the popular TypeScript.

Usage Statistics

  • Around 30k-40k websites on the web are using Jest framework for javaScript testing.
  • 39.6% of javascript devs and testers are using Jest currently.
  • Ranked 1st most popular javascript testing framework in State Of JS survey closely followed by Mocha.
  • Github – 23k stars, 3.2k forks and 800+ contributors.

Why JEST Is One Of The Top JavaScript Frameworks For 2019?

  • Lightning fast: Jest is extremely fast. Unlike Mocha Jest runs parallel tests to reduce test time and maximise performance.
  • No configuration required: Jest works out of the box without requiring any complex set up configuration like mocha. Jest gets configured the moment a dev uses create-react-app to create their react application. Tests can either be placed inside test folder or named with a .spec.js/.test.js extension
  • Mocking Library – Jest comes with its own mocking library which is a huge advantage over mocha. It also has in-built spies and matchers.
  • Ease of use: Out of all JavaScript testing libraries and frameworks like Mocha and Jasmine, Jest remains unmatched in its simplicity and ease of use. It was created especially for developers who are apprehensive towards JavaScript testing.

Problems With JEST

  • Not mature: Jest is the youngest testing library compared to its well established and mature competitors. It might not be suitable for larger projects that need various kinds of testing.
  • Poor Support: Due to its young age, Jest comparatively has less community support and tooling resources than Mocha or Jasmine. Popular IDE like webstorm started did not even support just until the recent update.

PROMINENT CLIENTS
Facebook, Instagram, Twitter, The New York Times, Glympse, Airbnb, Spotify

10. Mocha


Mocha is another one of the top JavaScript frameworks for 2019. Mocha is an extremely popular and robust JavaScript testing framework based on Node.js. Mocha is acclaimed for its feature-rich and easy asynchronous testing prowess. Unlike Jest, Mocha is a mature and older framework with reliable support and tooling. Mocha also supports a wide array of modern web browsers and JS libraries. However, Mocha is significantly slower than Jest which has prompted big clients like Airbnb to dump Mocha and migrate to Jest.

Usage Statistics

  • Around 30k websites on the web are using Mocha framework for javaScript testing.
  • 39.5% of javascript devs and testers regularly use Mocha.
  • Ranked 2nd most popular javascript testing framework in State Of JS survey.
  • Github – 17k stars, 2.3k forks and 400+ contributors.

Why MOCHA Is One Of The Top JavaScript Frameworks For 2019?

  • High Flexibility: Unlike Jest which comes out of the box with its own extensive mocking library, mocha gives users the liberty to pick any library or framework of their choosing according to their need and preference.
  • Asynchronous Testing: Unlike its peers, Mocha supports asynchronous testing. In newer updates of mocha, users can omit callbacks necessary for the test completion in order to speed up the testing process.
  • Installation Methods: Mocha offers multiple methods for installation, either locally or globally. It can also be used to run tests right in the browsers on the client side.
  • Supports a wide range of browsers: when it comes to browser support, Mocha remains unparalleled. It also has the feature to run browser specific tests.
  • Integration with Assertion libraries: testers can greatly accelerate their testing workflow by integrating Mocha with assertion libraries. Chai is the most popular assertion library being used.

Problems With Mocha

  • Extensive Configuration: The biggest reason for the rise of Jest’s and overtaking Mocha as the most popular testing framework is because of extensive configuration that mocha requires to set up. Unlike Jest, it does not come with a mocking library of its own and therefore cannot be used out of the box. Snapshot Testing: A separate library called chai-jest-snapshot is needed to be integrated for using screenshot testing functionality.
  • Snapshot Testing: A separate library called chai-jest-snapshot is needed to be integrated for using screenshot testing functionality.

PROMINENT CLIENTS
Asana, coursera, Typeform, selluki, Droplr, Onedio

11. Jasmine


The final place in this list of top 11 JavaScript frameworks for 2019 goes to Jasmine. Jasmine is an open-source JavaScript testing framework that has zero dependencies and can be used for testing any kind of javascript code. Jasmine(successor of JsUnit) was built by Pivotal Labs and launched in 2010 and is heavily influenced by RSpec. Since it is based on Behavior Driven Development (BDD), Jasmine does not test the entire application as a whole but rather breaks down tests to small units or statements. Unlike Mocha, Jasmine is armed with its own assertion libraries and also features “spies” for implementing test doubles.

Usage Statistics

  • Around 20k-25k websites on the web are using Jasmine framework for javaScript testing.
  • 28.5% of javascript devs and testers are using Jasmine.
  • Ranked 3rd most popular javascript testing framework in State Of JS survey.
  • Github – 14k stars, 2k forks and 180+ contributors.

Why JASMINE Is One Of The Top JavaScript Frameworks For 2019?

  • Jasmine does not depend on any other frameworks or libraries – it has no dependencies.

  • Does not require any DOM to run tests. Jasmine duplicates parts of DOM that it needs to run tests to check the JavaScript code. As a result it is able to run hundreds of tests in mere seconds and is one of the fastest javascript testing frameworks out there beating even Jest in some scenarios.

  • Easy to read descriptive syntax and low complexity.

  • Jasmine still remains as the most popular choice to run tests in AngularJS.

  • Can be deployed out of the box with minimum configuration and has its own assertion libraries which can be easily extended.

Problems With JASMINE
Growth hackers, Coderus, Ubiqua, Infoshare

CONCLUSION

JavaScript will continue to be at the heart of web and mobile app development for foreseeable future. JavaScript frameworks provide a flexible and efficient way of coding your applications. The decision of picking an appropriate JavaScript framework either for front-end, back-end or testing should be taken after careful and thorough deliberation depending on the requirement of the project undertaken. Every framework that we discussed above has its own advantages, disadvantages that makes them an ideal choice for different circumstances. Which JavaScript framework do you think will reign supreme in 2019? Comment your thoughts below. Happy 2019!

Original Source: lambdatest.com

Related Posts:

  1. Top 21 JavaScript And CSS Libraries To Develop Your Website
  2. What Is JavaScript Doing On Your Page?
  3. BROWSER COMPATIBILITY TESTING OF JAVASCRIPT CONST
  4. Will ReactJS Continue To Dominate In 2019?

Discussion (31)

pic
Editor guide
Collapse
itachiuchiha profile image
Itachi Uchiha

I think the JavaScript ecosystem will no longer have a new framework. Because most developers still thinking JS frameworks are complex. Because of this, these frameworks will grow up for a while. I think these frameworks have a lot of quality developers. They're focusing their frameworks.

Someday, if anyone says "These frameworks aren't enough to solve the xxx problem" new frameworks appears.

Does anyone agree with me?

Maybe my thoughts can be ridiculous. I can accept all punches :)

Thanks for the article. Really good. I added my reading list.

Collapse
antonfrattaroli profile image
Anton Frattaroli

Agreed. Innovation is ahead of the curve in front-end land. I'd be looking at React Native and competitors that bridge front-end with web and non-web platforms for the next big thing.

Collapse
nikhiltyagi04 profile image
nikhiltyagi04 Author

Thanks a lot for your feedback. I am glad you liked the article

Collapse
nickytonline profile image
Nick Taylor (he/him) • Edited

In regards to Angular, you wrote, "Supports two-way data binding which greatly minimizes the risk of errors."

Two way data binding can actually cause more errors and can also make it a lot more difficult to understand how the data flows through.

This is one of the reasons why React implemented one way data binding and other frameworks like Vue followed suit. See vuejs.org/v2/guide/components-prop... and reactjs.org/docs/thinking-in-react...

Collapse
nikhiltyagi04 profile image
nikhiltyagi04 Author • Edited

Maybe i didn't pen my thoughts concerning 2-way data-binding more clearly. What i meant was that 2-way data binding offers an incredibly high degree of assurance that the model and the controller are in sync, because during every cycle, they are checked against each other. 2-way data binding is still practical in small applications where absolute consistency between the view and model is critical. However this has an obvious downside that it is much more complex and quite slow compared to one way data binding. One-way Data Binding is expectedly much faster, much simpler and easier to comprehend but also has less assurance that the view and model are the same. Things might not change in the model and wrong data may continue to exist. But Speed, performance and simplicity are the dominant factors which is why all modern frameworks that came after angular like React and Vue dumped 2WDB for this very reason. But for some applications 2wDB is still practical that's why it wasn't completely deprecated in angular 2.

Collapse
fkleuver profile image
Fred Kleuver • Edited

Two-way data binding is just a shorthand for the double one-way data binding you do in React.

  • From view-model to view: either dirty-check, proxy or wrap the property in a getter/setter.
  • From view to view-model: listen for specific DOM events (most notably, change)

In React you need to manage the synchronization yourself. A framework can do this properly for you (I'll name Aurelia since that's what I use and work on) without sacrificing on control or flexibility.
A framework supporting two-way binding out of the box will typically have a more robust mechanism than the variant you'll write by hand, which everyone might do a little differently.

I would therefore say that two-way data binding does indeed minimize the risk of errors, granted it is done well. It also reduces boilerplate (resulting in a smaller and easier to maintain app) and tends to improve performance (Aurelia outperforms React by over a factor of 3 in binding/observation, although that has more to do with the use of observers instead of a VDOM)

Collapse
nullvoxpopuli profile image
NullVoxPopuli

According to npm, ember has been getting more usage since early 2017

Collapse
nikhiltyagi04 profile image
nikhiltyagi04 Author

As per State Of Js survey 2018 that polls 20000 javascript devs around the word, the share of Ember has reduced from 6.3% in 2016 to 5% in 2018.
2018.stateofjs.com/front-end-frame...

As per Google Trends data for US, search queries for ember dropped from a score of 70-80 in jan 2017 to just 40-50 in Jan 2019. Data for Worldwide shows a even steeper fall.
trends.google.com/trends/explore?d...

Collapse
nullvoxpopuli profile image
NullVoxPopuli

Oh I'm aware. But, you see there is a problem with both of those techniques of data collection. They are required to have the groups of people manually do things.... Whether it be fill out a survey, or search something on Google... It requires human interaction, and therefore cannot be a reliable source for capturing 'the full, complete picture'.

Npm stats are totally automatic and would be more representative of actual usage, as npm is the central source for where people get their dependencies.

With that said, here is a screenshot of part of the npm report: twitter.com/nullvoxpopuli/status/1...

Thread Thread
nikhiltyagi04 profile image
nikhiltyagi04 Author • Edited

It seems we are talking different metrics. The list is based on % of javascript developers who are currently using the framework, interested to use it in future or not.
Ember may have seen a rise in number of users as you indicated but that doesn't necessarily equate to higher % share. All other top frameworks are also growing their user base(some at a faster rate). That's why the statistics used for the article is based on % share. Other frameworks like React, Vue, Angular and Preact! are growing at a decent rate.

On NPM, Ember is clocking 113,764(ember-cli) weekly downloads and its graph has stagnated a little - npmjs.com/package/ember-cli
Compare this with weekly downloads of React(5,335,501) and Vue(767,907) both registering an upward graph. npmjs.com/package/react npmjs.com/package/vue

StateOfJs is quite reliable in my opinion. It is the world's largest survey of JavaScript devs in the world that covers almost all major countries. It correctly predicted for last 2 years the meteoric rise of React to top, Vue gaining popularity and Angular losing its flair or Next.js gaining interest in 2018.

Also the report had Preact framework at rank 4. I disn't include it on purpose because it is too similar to react(almost a flavor of react) and i wanted to keep the list a little more diverse. But you can get a pretty good idea how accurate StateOfJS survey is by checking out Preact NPM package weekly downloads - 107,147.

But as you rightly said StateofJs survey can only reflect a broad trend not absolute numbers.

Thread Thread
nullvoxpopuli profile image
Thread Thread
nullvoxpopuli profile image
NullVoxPopuli

user-sourced data is flawed, even though it's accurate when you squint at it, it's still flawed.

Not arguing about the correctness of anything aside from the ember stats, because npm shows the exact opposite of the StateOfJS survey, which means that people using ember don't typically take JS surveys.

:)

Thread Thread
nikhiltyagi04 profile image
nikhiltyagi04 Author • Edited

Thanks for the heads up, i corrected the ember package. I was wondering if you can quote any source that indicates ember is increasing its user share(not user base...all rival frameworks are doing it)? I based the ranking on couple of articles one of which was - medium.com/@vlascik/honest-look-at... This was written in 2018 may. Stats have changed but not the momentum imo. Is ember growing at the same pace as other top 3 frameworks or new competition like preact.

Thread Thread
nullvoxpopuli profile image
NullVoxPopuli

ember-cli-babel (used in ember apps and addons):

i.imgur.com/oJDOJkw.png

vue

i.imgur.com/Snz93vL.png

react

i.imgur.com/RitXIox.png

they are all much closer than the StateOfJS says.

React obvs the most popular still, cause it's what's being taught at bootcamps, and it's gotten to the point where non-tech people know about it, but this just goes to show how different imperfect surveys are with automatic data collection from stats from the single source of truth (the npm registry)

Thread Thread
real_ate profile image
Chris Manson

I think the better source to quote is Laurie Voss, CTO of npm, giving a speech at JSConf US specifically saying that Ember is having a resurgence 😂

Here is the link: youtu.be/mSQh0gcDXkc?t=1237

I included the time in the link but I would highly recommend watching the whole video 🎉

Thread Thread
nikhiltyagi04 profile image
nikhiltyagi04 Author

Yeah i watched the video after Preston mentioned it in his comments. Looks like NPM stats and StateOfJs are saying the opposite. That might probably change when 2019 results are out. But i do concede, NPM stats are undoubtedly a reliable source. By the end of 2019 it would be clear if Ember can sustain the newfound growth or not. The more i researched on this after discussion with Preston i keep getting contradictory analysis. But ember showing resurgence in early 2018 looks indelible. I should tweak the article to mention that fact.

Collapse
real_ate profile image
Chris Manson

I would be quite careful using the State Of JS as a source just in general. It's not very representative and if you want a better discussion about that I would recommend that you listen to this Podcast: changelog.com/jsparty/54 where they do a better job than I ever could explaining the issues 👍

Collapse
simplycodin profile image
FALL Simply

As a JS Developer who knew only basic JS before Vue, I can say that Vue, despite it's small size, relative to other frameworks, offer good support and very high quality documentation, unlike React. I believe the point about Vue having bad support be replaced with something like Small Ecosystem. Otherwise, the article is fairly accurate.

Collapse
nikhiltyagi04 profile image
nikhiltyagi04 Author • Edited

Like you said, support for Vue is not bad by any definition. But Vue is comparatively younger than its 2 dominant peers - Angular and React. Vue started finding traction from 2017 fall, throughout 2018 and shows no signs of stopping in 2019. But compared to React and Angular, resources for Vue are still a little scarce and its community is still maturing. As far as React is concerned, its documentation used to be a nightmare couple of years ago, but has improved quite a lot in recent years. Thank you for your feedback. I am glad you liked the article.

Collapse
antonfrattaroli profile image
Anton Frattaroli

Forgot cypress :)

Collapse
nikhiltyagi04 profile image
nikhiltyagi04 Author

I could only cover 3 testing frameworks :). But i agree with what you said Cypress looks quite promising and is ideal for testing literally anything that runs on a browser. Direct comparison with Jest and Mocha wouldn't be fair though. Cypress is much broader end to end testing framework. It might one day break Jest Mocha enzyme triopoly.

Collapse
nullvoxpopuli profile image
NullVoxPopuli

Bigtestjs is really good, too. Esp if you want acceptance and unit tests

Thread Thread
antonfrattaroli profile image
Anton Frattaroli

I'll have to look into it, thanks for sharing. I just found out recently that there are plugins for unit testing for cypress.

Collapse
jorgenvatle profile image
Jørgen Vatle • Edited

I think one of the major selling points for Meteor.js was overlooked - Meteor's out of the box data flow between the client and server is done real-time through WebSockets. This comes without any of the usual clunky setup that you normally need to go through when writing real-time APIs.

This makes Meteor is a solid choice for rapidly developing apps that heavily rely on real-time data updates.

Having tried several different solutions for developing real-time applications. (Plain Socket.io and Redis, Laravel Echo, Feathers.js, Wolkenkit) Meteor really stands out for its excellent development experience and fast development cycle.

However, one of Meteor's major benefits may also end up being one of its biggest downsides; Having Meteor do everything for you makes it a not-so-flexible solution.

Collapse
abc086 profile image
abc • Edited

for some reason Google decided that this crap is worth reading. i am on moboli so I won't bother to search for stats, but man you have no clue....

Angular JS is still considered as developer’s first choice for a heavy volume of developers worldwide which is why it is one of the top JavaScript frameworks for 2019

what is this supposed to mean? it is top because it is considered? by a heavy volume?

Knowledge of MVC

is a drawback of angular? lmao

learn to code

Collapse
vikasyadav72 profile image
Vikas Yadav • Edited

"Knowledge of MVC - is a drawback of angular? learn to code"
Extensive knowledge of MVC architecture has nothing to do with ability to code. You need to work on some other framework like Vue to understand the difference between the 2 and why so many devs are dumping angular and migrating to Vue and React. One of the reasons why Angular is way more complex and difficult to learn than Vue is because it forces you to write the complete M-V-C layer for front end Too much modularity leads to a lot of moving parts of code. VueJS wraps the controller part internally (you don't need to write it yourself). You can just focuses on View part only. All you need is 1 component class for an entity that stores its data and you can write methods on that. Vue has a fractional code footprint than angular to achieve the same task.

"what is this supposed to mean? it is top because it is considered? by a heavy volume?"
I checked similartech stats. 350k-500k websites are currently using Angular. A figure only matched by React. One of the biggest criticisms of Vue is that its community is still small and as a result resources are milited compared to angular. One of the reason Meteor which used to be my favourite before i moved to Vue could never find popularity and is slowly dying out is because it doesn't have a significant community behind it. But angular has been around for 10 damn years and has been widely adopted worldwide and is still leading React in Europe, Russia India etc. Maybe you aren't aware but Angular is leading in Top 10K Sites, Top 100K Sites and Top 1M Sites as per similartech stats that this guy mentioned in the article.

There are dozens of JavaScript frameworks available to choose from, but what determines a framework's longevity more than its own merit is its acceptance in the dev community. This is why angular has managed to survive for so long. Thousands of companies are still using the outdated AngularJS to this date(go and check job listings for AngularJS in US or Uk or India) even after 10 years because it was adopted by such a high volume of users over the years who still haven't migrated to Angular 2+.

Collapse
vikasyadav72 profile image
Vikas Yadav

Your comment hardly makes any sense lol

Collapse
martian2lee profile image
李华阳Martian

Where did you get the usage chart screenshot for each framework? Could you share the link?

Collapse
nikhiltyagi04 profile image
nikhiltyagi04 Author

The stats chart is from StateOfJs 2018 survey. Website - 2018.stateofjs.com/introduction/

You can get the statistics for JS flavors, front-end, backend, testing frameworks etc. Front end framework stats - 2018.stateofjs.com/front-end-frame...

Collapse
vikasyadav72 profile image
Vikas Yadav

Really great article! You have got a follower :)