The 5 Most Promising Frameworks of the First Half of 2016
An in-depth look at what distinguishes some newer JavaScript frameworks like Polymer, Aurelia, Meteor, Webix, and React.
Join the DZone community and get the full member experience.
Join For FreeThere’s a well-known tradition of summing-up previous experiences from time to time. This article won’t be an exception. We'll take a look at the five most interesting and promising javascript frameworks of the first half of 2016.
The initial intention was to put together different types of libraries that provide you with different functionalities, from UI component creation to isomorphic javascript. It won’t be a profound and detailed technical analysis, more like a brief introduction to the key features that you may find curious. some food for thought, if you'd like.
There are Many Exciting Frameworks for 2016
We are spoiled by how many useful frameworks there are for 2016 already out there, and it seems like more are going to be in the works in the near future.
This means that there are people who can already use these frameworks as they are already put out into the world. They are the exciting ones, and they are the ones that we want to review today.
You can look at the pros and cons of each one and decide for yourself how likely you are to use each one and what it might mean for the types of projects that you are able to accomplish. Consider this very carefully, and take slow and steady steps towards achieving your goals.
Well, here’s the list of our frameworks:
and now, it’s time to look at them closer.
Polymer. All Hail Web Components
Let's start with this one. The polymer was created by Google, and one of the primary intentions behind it is to provide you with the possibility to craft and use your own web components. If you're not familiar with this term for some reason, you can check this site that will guide you through the world of web components to help you understand why hordes of web developers consider them to be the future of the web.
Talking about the future, polymer uses cutting-edge technologies that are not yet present in modern browsers, such as shadow dom, custom elements, and many others. to make everything work, polymer suggests the use of polyfills. We can say that this is what polymer is: a collection of polyfills and syntactic sugar.
Let's now talk about the available UI elements. Here’s what the polymer element catalog looks like:
The second element of this periodic table is the paper element, which represents a set of visual elements that implement google’s material design (e.g., controls, layouts, hero transitions, and scrolling effects). you can check this demo page to see what they look like.
There's also a step-by-step beginner's guide that will help you learn the basics of polymer and create your first app.
Aurelia. Lightweight Widgets
Aurelia was created by a former angularjs developer, and according to his words, “aurelia has a first of its kind 'adaptive' data binding engine, allowing rich two-way data binding between vanilla javascript and dom (including web components).” sounds exciting.
Here’s the list of main features:
Written with es 2016. No external dependencies except polyfills.
Rather than taking the monolithic framework approach, Aurelia is composed of smaller, focused modules.
Uses web components
Two-way data binding
Testable
Broad language support. Aurelia uses es5, es 2015, es 2016, and typescript.
You can describe the working process like writing es2015/2016 syntax javascript with some sugar. The documentation page is pretty detailed and contains code examples that can help you understand the whole idea. or you can check the video tutorial that you can find on the main page.
It's also pretty extendable. since aurelia is just a series of components, it’s always possible to swap out components that don’t fall in line with your app. you’re free to change the router, the binding system, the observation functionality, or anything you want.
Meteor. isomorphic javascript
The meteor framework represents so-called isomorphic javascript. In general, this term means “javascript applications which run both client-side and server-side”. Thus, you can write your code once and use it both on the server for static page rendering and on the client to provide your user with interactive functionality.
Meteor is an open-source javascript framework, written on top of node.js, that focuses on real-time web applications. Nowadays, it’s hard to find a user who doesn’t wince whenever they see a web page that reloads every time after changing the settings or logging out.
The good news is that meteor was initially designed to create real-time apps. user actions or database changes cause immediate changes, and this behavior doesn’t require any extra code. That's just how a meteor works.
This framework simplifies the development process by removing the necessity of knowing a bunch of different programming languages. The front-end, back-end, and database parts are managed with only javascript.
Meteor has been called “embarrassingly easy to learn.” It's very simple to dive into it. run a couple of commands in your terminal and you get a working basic application. check the very beginning of this getting started guide if you don’t believe me. Moreover, there’s a possibility to deploy your project to a server using one simple command. you can use it everywhere, test it on different devices, or share it with your friends.
As you can see, meteor is very friendly to beginner developers, and looking at the supportive community, everyone from code ninjas to rookies should try it.
Webix. Components For Big Web Applications
Webix is a javascript and html5 framework that can help you create cross-platform, data-rich web applications with responsive user interfaces. It consists of 70+ components from simple sliders to big data widgets. you can find a list of components along with an API reference on this page.
The Webix developers paid attention to mobile users, providing you with the possibility to create an application that will look and behave fine no matter what device you use. apps run perfectly on Android, ios, Windows 8, and Firefox OS devices. They've also added the ability to use material design.
What other interesting features are available? The Webix development center contains a couple of useful tools. For example, there’s a skin builder that allows you to use and edit existing skins or create your own, and a form builder that allows you to create forms by defining the desired fields, and layout, and automatically generating the code for your form. There's even a visual designer that allows you to create drag-and-drop applications and then get the generated code. it requires registration, so if you’re curious but lazy, here’s what it looks like:
The documentation page is full of information for developers of different levels. There are quick start guides, tutorials, demos, etc. if you can’t wait to start coding, you can use this code playground.
React. Fast and Module Oriented
Another framework that was built by the internet giant, react is the creation of Facebook.
One of its most significant features is a high performance that was achieved by using a virtual dom instead of managing the browser’s actual dom on the fly. A virtual dom is not the actual rendered content but just data. That's why it’s easier to determine changes.
Another feature is the use of the jsx language. it’s an XML-like language that is optional and not required to use react. It is compiled down to javascript before being interpreted by the browser. You can check the project’s website to see the difference between writing a component in jsx and javascript. It may look a little bit incomprehensible at the first steps. but it’s worth your attention.
Data flow. Usually, when you use MVC frameworks, you encounter a situation when views communicate with each other, which leads to difficulties keeping data in sync and makes your app more complex. React only supports data flowing downstream. The reason behind this approach is to create components that only listen to data coming from upstream rather than from each other.
React is a good choice if you plan to create reusable UI components. it is easy to pull out pieces of previously used code and redo them. Check the documentation page to learn how everything works.
Conclusion
As the saying goes, there are plenty of fish in the sea, and there’s nothing more simple than switching from one framework to another in case there’s something you do not like with the one that you usually use. However, what always stays unchanged in the case of web development is the necessity to follow trends. Cutting-edge trends such as web components or isomorphic javascript are something you should keep in mind while planning your next project. I hope this article was helpful enough to simplify the decision-making.
Opinions expressed by DZone contributors are their own.
Comments