Why do we need js frameworks? Essential JavaScript libraries, tools, and frameworks you should know.

In the first part of the comparative study, we got acquainted with AngularJS, Ember, Backbone.js and the newcomer React, showed several code examples and discussed their weak and strengths. In Part 2, we'll take a look at their market share, support community, and growth pattern to help you make right choice for SPA.

Market research

The table below lists the frameworks along with their year of release, source, major sponsors, and an overview of the most popular sites using them. It's worth noting that each of these frameworks is used by at least one major web player:

This list demonstrates the maturity of all projects, but does not give an idea of ​​their overall popularity. Statistics from web crawlers usually don't give an accurate picture when it comes to backend frameworks, but in our case they are on the client side, and this information looks quite plausible.

Comparing wappalyzer.com with similartech.com and builtwith.com, we got very different results. To present them in the most understandable form, we recalculated the final figures as a percentage.

According to builtwith.com, React is used only 74 times in the top 1,000,000 sites, while wappalyzer.com found 18,582 uses of React across the entire web. All sources show that Angular and Backbone are the most used frameworks. However, similartech.com did not even mention the other two due to their tiny market share. Interestingly, Backbone.js is used more often in the TOP 1,000 sites than in the TOP 1,000,000, according to builtwith.com.

As a developer, you might be interested in taking a look at the community built around each framework. It can be used to judge the volume and speed of support that you will be able to receive in future projects. In this regard, it would be advisable to show several examples demonstrating the activity of communities. Every project is a member of GitHub, so we can take some indicative statistics from there.

Angular was the winner of the first part of the comparison. This means that it is not surprising to see it again among the most popular frameworks. While it almost reaches Backbone's numbers, it still beats all of its competitors from the developer community site in every metric.

When it comes to commits, the number of commits since the initial deployment plays a huge role. For example, Ember has the most commits. Impressive! But keep in mind that Ember took 6 years longer to get these commits together compared to React. However, React has more stars, despite its relative youth.

Stackoverflow.com puts Angular in the best light, giving it twice as many publications as Backbone and Ember combined, and 65 times more than React!

It is clear that this slice shows the state of affairs only at a specific moment. A logical question arises: which of these frameworks is worth investing in in the near future?

Google Trends has always been an excellent source of information about the popularity of a particular issue, and studying it over time can predict how popular it will be in the future.

What is certain is that Angular is the most popular framework. It can also be noted that Backbone's popularity has stabilized and even decreased slightly over time. The same can be said about Ember. Have they already passed their peak and are gradually losing momentum?

Without a doubt, the most striking trend is demonstrated by React. During the creation of the article, this section changed three times in 2 months:

December 2014: React is gradually catching up with Backbone and Ember. => Well done!

January 2015: React closes the gap and leapfrogs competitors. => Impressive!

February 2015: The popularity of React goes far ahead of Backbone and Ember. Now there is a chance to compete with Angular! => No words!

According to Google Trends, React went from zero to a quarter of Angular's popularity within 1.5 years. If React continues to make progress like this, we could likely see some interesting competition between the two leaders.

JavaScript has been around for over 20 years and is one of those languages ​​that never stops evolving. The language experienced rapid growth in lately, which makes you wonder whether modern JavaScript front-end technologies that are well known today will still be relevant in a couple of years.

However, it is important to be proactive when working with the latest tools and frameworks to improve the development process. This article covers various JavaScript libraries, frameworks, and tools that you should consider learning right now.

Introduction

The JavaScript environment has become simply huge. It has its own ecosystem of libraries, frameworks, tools, package managers and new languages ​​that compile before JavaScript. Interestingly, NPM, which is the de facto package manager for JavaScript, is also the world's largest registry software. Here's an excerpt from a post published on Linux.com back in January 2017.

With over 350,000 packages, the registryNPM contains more than double the packages of the other most popular package registries (of which the Apache Maven repository is one). In fact, it is currently the largest package registry in the world.

Now let's fast forward eight months and there are currently about 500,000 packages in the NPM registry. This is a huge increase compared to other package repositories.

As a front-end JavaScript developer, it is important to keep up with modern JavaScript tools and libraries. When a technology becomes popular, the demand for it is high, which in turn means more coding jobs that pay the most high cost in the industry. That's why we've put together a list of popular JavaScript technologies that we think you should know.

Libraries

The library is a reusable piece of code that offers certain functions. It is a set of functions, objects and classes that you can use in your application. The library abstracts the various layers so you don't have to worry about their implementation details.

You can call a library function and pass some parameters to it, the library will execute it and return control back to you. However, it does not impose any structural restrictions that limit the use of the library. Popular JavaScript libraries include:

React is a JavaScript library created by Facebook and Instagram developers. React was voted the most favorite technology among developers, according to a survey Stack Overflow Survey 2017. React is also the most popular JavaScript project, based on GitHub star count.

So why is React getting so much attention? With React, you can create an interactive interface using a declarative approach, in which you can control the state of the application by saying “the picture should look like this.” It uses a component model in which components are reusable UI elements and each component has its own state.

React uses a virtual DOM, so you don't have to worry about manipulating it directly. Other notable features of React include one-way data flow, optional JSX syntax, and tool command line to create a React project with zero build configuration.

jQuery is a library that has made JavaScript more accessible and DOM manipulation easier than before. jQuery's gentle learning curve and simple syntax have spawned a generation of new front-end developers. A few years ago, jQuery was considered a reliable solution for creating powerful websites with cross-browser support. Basic jQuery features such as DOM-based manipulation CSS selectors, event handling and making AJAX calls fueled its popularity.

However, things have changed, and the JavaScript environment is constantly evolving. Several jQuery features have been included in the new ECMAScript specification. Moreover, new libraries and frameworks used today have their own way of DOM binding, and therefore simple methods DOM manipulation is no longer required. jQuery's popularity is on the decline, but I don't think it's going away anytime soon.

D3 (or D3.js) is a powerful JavaScript library for creating interactive visualizations using web standards such as SVG, HTML and CSS. Unlike other rendering libraries, D3 offers better control over the final visual result.

D3 works by binding data to the DOM and then converting it into a document. It also has its own ecosystem, which consists of plugins and libraries that extend its core functionality. The library has been around since 2011 and has plenty of documentation and tutorials to help you get started.

If you want to create simple visualizations without investing too much time in them, you should check out Chart.js.

Frameworks

The framework has an architecture that dictates the control flow in your application. It describes the basics and tells you how everything should be organized. You are also provided with the basic features needed to get the application up and running. Additionally, you are required to follow the principles and patterns of the framework. The difference between a framework and a library is that you call the library, whereas the framework calls you.

It often includes many libraries and has more high level abstractions. Functionality such as event handling, making AJAX calls, template and data binding, and testing are built into the framework.

AngularJS was once the most popular JavaScript technology among front-end developers. It was supported by Google and a community of individuals and corporations. Despite its popularity, AngularJS had its share of shortcomings. The team spent two years working on new version Angular, which was finally released in September 2016.

The release of Angular 2 was a redesign of AngularJS. Some of the features of Angular 2 include:

  • TypeScript over JavaScript as default language
  • component architecture
  • improved performance on both mobile and web platforms
  • best tools and scaffolding options

However, upgrading from Angular 1.x to Angular 2 is expensive because Angular 2 is a completely different beast. This is one of the reasons why Angular 2 did not have the same adoption rate as its predecessor. But Angular and AngularJS are still among the most commonly used technologies according to Stack Overflow (2017). The project has about 28,000 stars on GitHub.

Vue.js is a lightweight JavaScript framework that has been trending this year. It is the most popular JavaScript framework on GitHub in terms of GitHub stars. The template syntax is HTML based binds the provided DOM to the instance data.

The framework offers a React-like experience with its virtual DOMs and components reusable, which can be used to create both widgets and entire web applications. Additionally, you can also use JSX syntax to write rendering functions directly. When state changes, Vue.js uses a reactivity system to determine what has changed and redistributes a minimal number of components. Vue.js also supports the integration of other libraries into the framework without much hassle.

Ember.js is a front-end based on the Model-View-ViewModel (MVVM) pattern. It follows the standard customization approach that is popular among third-party frameworks such as Ruby on Rails and Laravel. Ember.js includes common idioms and framework best practices so that you can create an application without much effort.

An Ember stack typically includes:

  • Ember CLI: Provides basic scaffolding options and supports hundreds of add-ons.
  • Ember Data: A data persistence library that can be configured to work with any server.
  • Ember Inspector: Extension available for Chrome and Firefox.
  • Liquid Fire: An add-on for transitions and animations.

Tools

The tool is a set of routines that will help you in the development process. Unlike a library, a tool usually performs a task in client code. It takes your code as input, performs a task on it, and then returns the result. Commonly used tools include transpilers and assembly tools, activators, modules, and scaffolding tools.

Tools: Versatile task performers

Universal task runners are tools used to automate certain repetitive tasks. Popular task performers include:

Gulp is a JavaScript toolkit that is used as a task runner and build system in web development. Compiling, code minification, image optimization, unit testing, listing, etc. are repetitive tasks that need to be automated. Gulp simplifies the process of writing tasks even for people who are less familiar with JavaScript.

Gulp uses pipelines to stream data from one plugin to another, and the end result is output to a destination folder. Gulp works better compared to Grunt because it doesn't create temporary files to store intermediate results, resulting in fewer I/O calls.

Grunt is a task runner and JavaScript automation tool. Grunt has a command line interface that allows you to run custom tasks defined in a file called a Gruntfile. Grunt has thousands of plugins to choose from, which should cover most of the common repetitive tasks you encounter. With Grunt, you can run all your tasks under one command, making your life easier.

Gulp and Grunt require you to spend time learning and mastering a new tool, which will take you the same amount of time. You can avoid introducing additional dependencies into your project by choosing an alternative that is already bundled with Node.js. Although npm is better known as a package manager, npm scripts can be used to perform most of the above tasks.

Tools: testing

Testing is the process of approving and verifying that an application meets expected business and technical requirements. The test-based approach also helps in detecting errors and hence should be considered as an integral part of the modern development interface.

Jest is relative new platform testing, created by Facebook and well received by the React community. There is a common misconception that Jest is specifically designed to work with React; however, according to the Jest documentation:

While Jest can be thought of as a React-specific test, it is actually a universal testing framework that can adapt to any JavaScript library or framework. You can use Jest to test JavaScript code.

The most big advantage of using Jest before other test suites is that you require zero or minimum configuration to start writing tests. The framework has a built-in assertion library and supports the use of mock functions or spies.

Jest has a feature called "snapshot testing" which allows you to ensure that user interface applications will not change unexpectedly. Developers at Facebook and others have put a lot of work into this project, so it's no surprise that Jest will prove to be the most popular JavaScript testing platform in the coming years.

Mocha is a JavaScript testing platform that has browser support, asynchronous serving support including perspectives, test coverage reporting, and a JavaScript API for running tests. Mocha is often coupled with an assertion library such as Chai, should.js, expect.js because it does not have its own assertion library.

Jasmine is a behavior-oriented JavaScript framework. Jasmine aims to be a browser, platform, and framework-independent test suite. Jasmine has its own assertion library called matchers, which gives the tool a clean and easy to read syntax. Jasmine does not have a built-in test runner and you may have to use a generic test runner such as Karma.

In conclusion

JavaScript has remained relevant since its creation back in 1995. It will probably stay the same until browsers decide to abandon it for another language. While there are many other languages ​​that compile using JavaScript, there is no other scripting language that will replace JavaScript in the foreseeable future. Why? Because JavaScript has become too popular to be replaced.

The language is not without its learning curves, and there are many frameworks and libraries available to help you get started learning it. If you're looking for more resources to learn or use language in your work, there are plenty of useful resources on the Internet on this topic.

The JavaScript framework is definitely evolving, as can be seen from the current trends in web development. Old libraries and frameworks have been replaced by new technologies. jQuery, which was once the most popular JavaScript library, has seen some decline in terms of appeal, usage, and popularity. A new generation of front-end libraries, frameworks, and tools is gaining momentum and widespread acceptance.

Getting used to new trends in technology also has its benefits. Coding jobs that require React knowledge have some of the highest salaries in the industry. Therefore, you need to continue learning and experimenting with the latest tools and frameworks to get the most out of JavaScript.

  • JavaScript,
  • Meteor.JS
  • ReactJS
  • Programming
    • Recovery Mode

    The popularity of JavaScript continues to grow. In 2016 we witnessed big changes with the release of a complete upgrade of AngularJS and the announcement of Angular 2, the ultimate champion of jQuery, which is used in 96.5% of all sites, the evolution of ECMAScript, two updates to Node.js in April and October respectively, and even more. . What to expect from 2017? Here's what we know so far: Angular 4 is expected in March 2017, ES2017 is planned for mid-2017, Bootstrap v4 is also expected to be released this year.



    JavaScript has recently taken its place among best languages for study according to IBM in 2017. On at this stage it is used for both the client and server parts and helps to design attractive interfaces, enrich web applications with numerous functions and features, change web pages in real time and much more.

    In the meantime, JavaScript frameworks can become a lifesaver for the rapid development of web applications. They serve as a framework for individual application pages, allowing developers to worry less about code structure or support while they're focused on creating complex UI elements.

    Benefits of using JavaScript frameworks:

    • Efficiency– projects that would previously have taken months and hundreds of lines of code can now be implemented much faster with well-structured ready-made templates and functions.
    • Safetybest javascript frameworks have a proprietary security system and are supported by a large community, whose members and ordinary users act as testers.
    • Expenses– most frameworks with open source and are free. Since they help programmers develop custom solutions faster, the final price of the web application will be lower.

    The best JavaScript frameworks in 2017:

    Angular-s




    After the long-awaited release of Angular back in 2016, its popularity has reached new heights, but it will continue to hold the bar in 2017.

    Angular.js often called MVW (Model-View-Whatever) framework and among the main benefits for start-ups and medium-sized companies are: fast code writing, quick testing of any part of the application and two-way data binding (changes in the backend are immediately reflected in the user interface). Since its release, its ecosystem has expanded beyond imagination. Now it is deservedly called the most used JS framework for developing single-page applications (SPA Single-Page-Applications) and it boasts the largest developer community.

    Angular2 comes with a large list of features that will allow you to develop everything from web to desktop and mobile applications. The framework is built on Microsoft's TypeScript with the goal of making JavaScript more flexible and attractive to large enterprises. ng2 features have a component-based architecture, improved DI (dependency injection), efficient logging service, intercomponent communication, and much more. An example of game development in Angular2:




    Both Angular are the best option For enterprise applications or for programming environments with high standards for code readability.

    ReactJS




    Despite the fact that it is more of a library than a framework. It is behind the user interface of Facebook and Instagram, showing its effectiveness inside dynamic applications with high traffic (bandwidth).

    It is rightfully considered the fastest growing JS framework: today there are about 1000 Github authors. In the MVC (Model-View-Controller) model, React.js acts as a “V” and can be easily integrated into any architecture. Thanks to the use of a virtual DOM tree, it provides greater performance gains compared to Angular 1.x. In addition to this, React components can be created and reused in other applications or even shared for public use.

    Despite the fact that React is more complex to learn, it makes application development simple and easy to understand. In addition, it can be ideal for complex, impressive software solutions With high degree loads.

    An example of application development using React.js.

    Vue.js


    Vue 2.0 was also introduced in 2016 and takes the best of Ember, React and Angular and puts it all into a convenient package. It proved that it can be (it turned out to be) faster and more compact than React and Angular 2.0.

    Going deeper, Vue.js offers two-way data binding (like AngularJS), server-side rendering (like Angular2 and ReactJS), Vue-cli (a scaffolding tool to get you started quickly), and optional JSX support. Its creator claims that Vue2 is one of the fastest frameworks overall.

    Vue.js is the best choice for rapid cross-platform application development. It can provide a strong foundation for high-performance Single Page Applications (SPAs) and a beneficial solution when performance is more important than good code organization or application structure.

    Lecture with an analysis of the features of Vue.js.

    Ember.js




    Back in 2015, Ember was named the best JS framework, leaving behind React and AngularJS. Today it boasts a huge online community, regular updates and widely used best practices in Java Script that guarantee the ultimate experience right out of the box.

    Ember has two-way data binding, like AngularJS, keeping both the view and model in sync at all times. The use of the Fastboot.js module provides fast rendering (drawing, recalculation) of the DOM tree on the server side, improving the presentation of complex user interfaces.

    Emberjs is commonly used for complex, feature-rich web applications and websites. Top users include Chipotle, Blue Apron, Nordstrom, Kickstarter, LinkedIn, Netflix and many more. Moreover, it is the easiest to learn and there are many available online teaching aids and guides.

    Meteor.js




    Meteor is one of the most popular JS frameworks, but which is steadily moving with a ton of features for backend development and front-end rendering, database management and business logic. Since its release in 2012, its ecosystem has grown at a dramatically rapid pace. This full-stack platform allows you to quickly develop web and mobile applications. From a performance perspective, all changes to the database are immediately transmitted to the user interface and back, without any visible time loss caused by differences in languages ​​or server response times.

    An example of MMO development on Meteor.js:




    Meteor.js covers all stages of the software development cycle and takes care of processes such as linking, file concatenation, and more. The framework is now used to develop real-time applications in companies such as Mazda, IKEA, Honeywell and many others.

    Conclusion

    The choice of framework is not based on the functionality that each of them can offer. It depends on the initial goals of the company, the requirements for the project, the overall functionality of the framework and how it can be applied in each specific case.

    When it comes to rapid web development or prototyping, JS frameworks are the most popular to use and 2017 will be no exception. These frameworks and libraries have already changed the way JS interacts with HTML and CSS to unify presentation across browsers and native platforms.

    JavaScript is one of the most popular languages ​​in the world. Web developers actively use JS to design, animate, and create web pages. Along with HTML and CSS, JavaScript can move mountains, namely making a web page interactive and as interesting as possible for users.

    JavaScript doesn't limit itself. Instead, it continues to evolve. It is the most versatile programming language, which is backed by its ability to develop applications for a wide range of platforms such as Android, Windows and iOS.

    Main advantages of JS:

    1. Flexibility - changes are welcome.
    2. Reliability – works and changes according to defined priorities.
    3. Scalability.

    Let's look at several JavaScript frameworks and libraries that are still relevant in 2018.

    Vue.js

    An open source UI framework that continues to evolve. Deservedly the most popular JS framework according to GitHub statistics. Vue.js re-renders a minimal number of components and supports the integration of third-party libraries. Like React.js, Vue.js is very fast, uses Virtual DOM, and provides reactivity and a component-based framework.

    Pros:

    1. Easy integration into projects using other libraries.
    2. Can work as a framework for creating advanced single page applications.

    Cons:

    1. The rendering system provides fewer debugging options than the equivalent React system.
    2. The component approach in React is more flexible and transparent.

    Angular

    This Google-developed JS framework has set a new benchmark. An indispensable framework designed not only for software developers, but also for designers. AngularJS, Angular 2 and Angular 4 are firmly established among the popular frameworks. This is an open platform that will help create SPA applications (Single Pages Applications), implement two-way binding for dynamic change data, etc.

    Pros:

    1. Developers encounter fewer errors because data binding is built on top of Angular elements.
    2. Various MVC elements are supported.
    3. Works well in an Agile environment.

    Cons:

    1. Vue is simpler in terms of architecture.
    2. The Angular API is huge and there are many concepts to understand.

    jQuery

    jQuery and JavaScript have a long and strong relationship. WITH MIT license this library provides application developers with the ability to write more short code, thereby reducing the workload. It supports DOM manipulation and, in tandem with CSS, can be useful for solving any problem.

    Pros:

    1. Widely used due to fast processing.
    2. It behaves the same in all browsers.

    Cons:

    1. Many functions that make working with the DOM easier are already implemented natively.

    React.js

    Next to join the league is the UI library React.js. This is the heart and soul of IT companies and various business websites. This JS library comes into play when you need to solve the problem of partially updating the content of a web page. An ideal tool for large-scale web projects. React.js functionality helps improve the UI.

    Pros:

    1. Free and Open Source.
    2. Can use already written code.
    3. Supports virtual DOM functionality.

    Cons:

    1. The Virtual DOM algorithm is inaccurate and slow.
    2. Requires complex asynchronous programming when communicating with the server.

    Node.js

    This server-side JS platform will be next. Responsive, non-blocking and fast tool. GoDaddy and Paypal are just a few of the big names that use Node.js. It is best suited for I/O related and data streaming applications.

    Pros:

    1. Such software can run on multiple hosts.
    2. Enabling fast servers.

    Cons:

    1. Not for “non-through” transactions.
    2. There is nothing to do without tests in Node.js.

    Titanium Framework

    Titanium is both an SDK and cloud platform for building/distributing software. A high-quality, affordable and easy-to-learn tool. Titanium is designed for cross-platform development, which is ideal for creating feature-rich applications.

    Pros:

    1. Easy to learn and implement.
    2. High performance structure.
    3. For desktop and mobile cross-platform software.

    Cons:

    1. Not the most effective and original approach to creating UI, unlike React.

    Ember.js

    Another representative of JavaScript frameworks with open source code. The main advantage is the massive repository that can serve as a dictionary for application development. Simplifies the creation of scalable single pages and provides two-way data binding.

    Pros:

    1. Easily configured in the system.
    2. Deploys large user interfaces.

    Cons:

    1. Rigid project structure.
    2. There is no standard set of UI elements.

    This material is a translation of the article. Translated and updated by the site

    Today we will talk about JavaScript.

    AngularJS

    One of the most popular JS developer tools was released in 2009. Thanks to its wide functionality (albeit not reaching Full-stack) and the support of its powerful creator, Angular quickly climbed to the top of the ranking of the best JS frameworks, and does not intend to climb down from there.

    As for recent releases, Angular 4.0.0 was officially released at the end of March (despite the fact that 2.0.0 was released only a year ago). This update rate is not due to the “crudeness” of the products being released, but to the fact that the first version contained many simplifications, which in inept hands led to errors, and in experienced hands to significant losses in performance, the second is a compromise transition, the third was skipped, and the fourth - this is a current product, modified based on all comments. True, there is a suspicion that it is not yet complete.

    And now more about the advantages. Firstly, it's convenience. You don’t have to worry about describing a dozen pop-up processes when processing one event; the work with templates and dependencies is really well implemented here, and creating a strictly personalized interface is not difficult.

    Secondly, Google is constantly releasing more and more high-quality libraries and plugins.

    Thirdly, in Angular, interaction with HTML is not replaced by the DOM model (HTML code is not mixed with scripts), which ultimately affects the ease of reading and testing of the code. In addition, Angular's capabilities are slightly broader than those of most popular JS frameworks.

    Disadvantages of this approach: low performance of busy interfaces and a sharp learning curve (it’s easy to start working, but the further you go, the harder).

    ReactJS

    This framework was created in 2013 by Jordan Wolk from Facebook. The low entry barrier and ease of use have made ReactJS a popular product among corporate developers, finding responses in the hearts of the offices of companies such as Airbnb, Netflix Walmart, etc. Moreover, React is considered the main tool for a JS developer today, simply because Angular is a little complicated and redundant.

    The thing is that, unlike Angular, React is very limited in functionality. Moreover, some hardcore developers do not seriously consider ReactJS a framework, offering something more understandable, but not entirely correct definition"limited library for lazy people."

    But this description reveals the main advantages of working with this framework quite accurately. Here you operate with templates and ready-made callback functions, creating your own front-end. For a beginner, everything is quite convenient and understandable, but, in fairness, in Angular things are no worse.

    The main convenience and at the same time the main complaint about React is JSX components. This is exactly the case when scripts are tightly mixed with HTML code, blurring the boundaries between the presentation and functionality of the component. There is nothing wrong with this, but understanding of the work and “correctness” suffer. In short, with React you save time and nerves, and this is what often matters key role in choice, but you lose a little self-respect.

    The main disadvantage, in addition to the very limitations of the approach, is that the official documentation is not the best. But either it was seriously reworked, or the critics’ expectations were initially very high, but I didn’t see anything fundamentally different from the tutorials that Microsoft or Google usually offer their clients.

    Vue.js

    The first version of Vue.js was built on the same principles as React, but excluding the use of JSX components. It was a good alternative, but before version 2.0 it was a rather crude library. And then it started. Just look at the statistics: crazy growth in popularity on GitHub, Google Trends and in developer preferences.

    To put it simply, Vue.js is a kind of compromise between React and Angular. Front-end code is easy to create, but at the same time read and edit. At the same time, this has absolutely no effect on the final performance; more precisely, it has an effect, but only in a positive direction.

    But there are negative sides, and they are quite significant. Firstly, there is a meager amount of documentation and third-party libraries. The project is young, developed essentially by one person, and experienced a surge in popularity only in 2016, so there is no need to talk about any stream of auxiliary tools.

    In addition, the demand for Vue.js is concentrated mainly in the China region, so there is no need to talk about the development of communities either. Secondly, another problem of growth - large number runtime errors in templates. Over time, everything gets better, but this fact so far this refers to serious problems, and not rare misunderstandings.

    Ember.js

    Another variation on the theme “More templates - more benefits for the developer.” In essence, you won't see anything revolutionary here, Ember is essentially a simplified Angular. The main similarities are provided by two-way binding and capabilities that lie beyond the creation of a front-end interface.

    This is where the MVC model is implemented. implemented according to strict configurations. From the point of view of mastering the tool by a beginner and ensuring the speed of development - almost perfect solution. But when you decide to leave this path beaten by the developers, you will immediately discover all the sharp pitfalls. These are the difficulties of customization, and too frequent radical changes to the version, and the associated quickly outdated standard FAQ on forums and communities.

    Meteor

    Meteor is far from the most popular framework, but it has a lot of advantages that the previously listed contenders are deprived of. Firstly, this is a true Full-stack developer tool. Secondly, you can write here at pure JavaScript. Third, integration with either Angular or React. Fourth, an almost ideal implementation of the mechanism for creating real-time web resources (examples are Mazda and Ikea online configurators). Moreover, all this is flavored with excellent official documentation, including training, and a large community of developers

    The disadvantages are not too significant: using Mongo as a database or others, but through Mongo Queries (in Angular, for example, there are no such restrictions), and the questionable security of the resulting product, which is quite natural for such functionality.

    At the same time, Meteor is relatively easy for a beginner to learn, and one or two days is enough for an experienced developer. However, unfortunately, neither this nor the efforts of developers who are constantly refining their product make it possible to overtake other today's contenders simply because full-stack is still very difficult for many. But maybe that's just because they haven't tasted Meteor.

    What frameworks do you use?