Because of this, people sometimes dismiss it as an older way of building web applications, without digging into the library’s many interesting features or its underlying philosophy.
Since it is easy to miss the advantages of intercooler when compared with libraries like Angular or React, in this post I will give you N good reasons you should at least look at intercooler in 2016, where N > 0.
Intercooler is very simple to get started with. A single HTML attribute is enough to add AJAX functionality to a web application:
<a ic-post-to="/click"> Click Me! </a>
Despite this initial simplicity, intercooler also scales quite well: the amount of intercooler in your application will scale linearly with the amount of HTML in it, and with a very low constant.
This light footprint also allows intercooler be retrofitted into an existing application easily, without making a huge commitment to the library.
I don’t see this discussed much, but the client-side browser is not a trusted execution environment. All data from a browser environment should be verified on the server side, of course, and I would argue you should be concerned about domain logic even being run in an execution environment as chaotic and open as a browser.
An application built in intercooler keeps domain logic on the server side, in a trusted, secure environment.
REST is somewhat controversial in development circles, particularly in the context of JSON APIs. While I agree with many of the criticisms of REST for JSON APIs, it turns out that REST-ful style thinking is wonderful when you are designing web interfaces: it helps you produce clean, decoupled and stateless web applications that are easy to reason about and, therefore, easy to maintain.
Since web pages and sub-elements within it tend to be “final consumers” of data it is not necessary for them to be chatty over HTTP with a REST-ful URL scheme. All complex data access is done, and tuned, on the server-side, against a data store using its natural tools, e.g. SQL. Additionally, since HTML is being returned from the server, developers can return both data as well as the operations on that data (e.g. links, forms, etc.), rather than just data, as with JSON. This is powerful, deep feature of HTML, and a future guest blog-post will expand on this point.
All of this makes working with CSS transitions both intuitive and easy.
Adding history and back-button support is literally as easy as adding two attributes. This means you can use nice, clean, copy-and-paste-able semantic URLs for your app. And because intercooler applications are stateless on the client side (for the most part) a user can refresh a page and not lose everything. Just like old times.
Intercooler can be deceptively simple: you can build advanced interfaces in it using modern browser features like CSS3 transitions, HTTP headers, extended HTTP actions, hierarchical dependencies, and DOM events, to name just a few. It is also quite fun, once you get the hang of it.