Svelte
Just like the most popular -React and Vue- Svelte is a component-based framework, but it has an important difference: Svelte runs at build time, which is pretty crazy but makes a lot of sense.
In most of the traditional js frameworks, we write declarative state-driven code that the browser needs to convert into DOM operations, adding an extra layer of complexity and process to the experience.
In Svelte this compilation is made in build time, converting your components into highly efficient imperative code that surgically updates the DOM. As a result, you are able to write ambitious applications with excellent performance characteristics.
The main commitments of Svelte framework are:
-
Less code written
-
No virtual DOM
-
Truly reactive
It certainly sounds promising, we will see how they work the next year.
Aurelia
Aurelia is a powerful Javascript framework based on standards. Yes, this amazing framework embraces you to write simple and clean code, focusing on web standards and without unnecessary abstractions. You will not be learning a new framework, you will be using Javascript, but future-spec Javascript.
Another important aspect of Aurelia: it is not a monolithic beast, it is built as a series of collaborating libraries. Taken together, they form a powerful and robust framework for building Single Page Apps, but you can also use them individually, in traditional websites or even on the server-side through technologies such as NodeJS.
Main features of Aurelia:
-
Components (HTML + JS)
-
Web Standards
-
Extensible
-
Commercial Support
-
Open source license
HyperHTML
HyperHTML is a "DOM & ECMAScript standard compliant, zero-dependency, fully cross-platform library suitable for declarative and reactive Web Applications." Lovely.
You don't have to learn a new framework, hyperHTML is just standard JavaScript, HTML and CSS. As crazy as it sounds, its core features are built on top of template literals, in which every interpolation is addressed once, as a unique DOM operation, and updated at lightning-speed when needed.
The key in hyperHTML is performance, thanks to these simple facts:
-
It is really lightweight, weighing around 4.5K. That's all the bandwidth budget you and your users need.
-
It doesn't double RAM or CPU usage via Virtual DOM operations, it does not use a Virtual DOM at all.
-
It is fully based on ECMAScript standard and DOM specifications so, technically, nothing works better than that.
Mithril
Mithril is a modern client-side JavaScript framework for building Single Page Applications. It claims to be the smallest and most performing framework today, and although we know hyperHTML is smaller, it is small for sure (< 10kb gzip) and fast. It also includes routing and XHR utilities out of the box, which is nice.
Mithril supports IE11, Firefox ESR, and the last two versions of Firefox, Edge, Safari, and Chrome (no polyfills required), and adding it to a website is as simple as linking it from a CDN.
Cycle
According to Digital Ocean, Cycle.js is "the most accessible FRP framework for JavaScript we’ve yet had the chance to be awed and confounded by."
The name refers to a cyclical flow of streams between the user interface and the presentation logic of the app. The UI is an input for the logic. The logic is an input for the UI.
It has its own CLI create-cycle-app and, in my opinion, it is the most similar to the popular frameworks nowadays, like React.
Main features of Cycle:
-
Functional and Reactive
-
Simple and Concise
-
Extensible and Testable
-
Explicit dataflow
-
Composable
And according to them you only need 1h 37min to learn it, which is quite cool.
To sum up!
Without any doubt, the keys to the future are smaller and faster. And the proposed path to this end is to conform to web standards and think efficiently. It is more than exciting!
Whether they become popular frameworks or just make a bit of noise (to push the big ones in this direction) Svelte, Aurelia, hyperHTML, Mithril and Cycle will hopefully make their mark on the history of Javascript.