What I learned at Fullstack Fest 2016

“Frontenders are a bunch of hopeless dreamers”

The problem that the community out there is trying to solve is way more complicated than what we could think at a first look. Try to think about it. We want to:

  • provide a great user experience,
  • in a distributed environment,
  • instantly accessible via a single URL,
  • available across all the existing browsers,
  • and all the existing devices and OS,
  • in all the possible network conditions,
  • in order to achieve the largest amount of users
  • and make them happy.

The problem is really complex. It’s easy to guess why there are so many different solutions and the community cannot find a common way. Backbone, Ember, Angular, React, Elm and whatever other framework or library can come to your mind try desperately to address a solution for the said problem.

In parallel to that, they try to improve one more crucial aspect of the implementation of a web application: the developer experience
In the past, most of the effort took by developers were aiming to improve the user experience but in the latest years we are assisting to a change of this mentality, trying to provide the developer, who builds the app, with a performant, efficient, more robust, less complex way of implementation which at the end returns in a better experience for the user, who uses the app.

Out of all these consideration, one thing seems to be sure and agreed by all the community:

The paradigm MVC + REST API is dead.

We started to be aware of the end of MVC since React started to become a big thing out there. Concepts as immutability, single-direction-data-flow, componentization have already started to be in our every day working life and they will keep staying like this for the next future.

In this sense, React+Redux as well as several new features introduced by ES6 (such as Observable Objects) implement these ideas and provide great solutions to start to think in a different way.

Best advise: digest and comprehend them ASAP!

Several talks at the conf treated this topic

What really surprised me, it was listening so many people asserting that 
REST APIs also belong to the past. 
Here you can find a detailed explanation of why REST system is not optimal for our applications, which summarized are: multiple round-trips between client and server and over-fetching, which are both significantly expensive regarding time, data and network consuming.

The roads of the future lead us to Queryable API.

Facebook, along with React came with a query language called GraphQL and a framework for building data-driven application with the mentioned language: Relay.

The colleagues of Netflix came out with Falcor, a Javascript library for efficient data fetching, which addresses the same concept.

The most relevant aspect of queryable API is that the API is specified on the client side rather than the server side, avoiding to ask and wait for changes on the server side and letting the frontend to specify on its own how and which data are needed, in a JSON-like way.
Therefore, you frontend developer can specify the data you need with the following:

Request

and getting as a response:

Response

These were the main topics of the conference, testifying how in the following future of web application development the boundaries between frontend and backend are less and less obvious (“the frontend is a fullstack”).

Here you can find the links to the talks I appreciated the most at the conf and from which most of the content of this article got inspiration from:

along other really interesting topics like ServiceWorkers, Clojure.js, Cycle.js, the Physical Web and the exciting NeuroJavascript.

Alex Castillo with its neuro Javascript helmet