I read a lot about news surrounding web technologies, mostly the ones related to software development. A lot of what I read is not used on a day to day basis, but given the volatility of the web stack, I believe it is always worth understanding what is possible to be done, digging into the details of how to do as deemed necessary.

It's been almost 7 years since I wrote my first if. It was PHP 5 at the time. Still, I am nowhere near to tackle the huge amount of technologies and practices available today, including the principles and fundamentals that are not strictly related to web technologies.

In the past couple of years, I have seen some trends emerging in the web community. Some of them already happened in the past, others reinvented old fundamentals that already have been proven to be useful, but all of them have one thing in common: the potential to change everything.

Here are 7 predictions for the web that I believe will happen at least in the next 5 years.

1. Progressive Web Apps will overrun mobile apps R.O.I., but mobile apps won’t become obsolete (yet)

We had the web. At the time, it was not prepared for the mobile world when it exploded. Native applications took advantage of that as the only solution to provide an efficient user experience.

Native mobile applications were a step back, and today things are starting to change.

Google Accelerated Mobile Pages show the desire to fix the runtime performance of web applications, by preventing the developer from using things that will cause a huge impact on the user experience and hopefully drive a change of mindset in the side of the user.

A Service Worker is the most important aspect of the concept of Progressive Web Apps. It removes the network performance bottleneck for recurrent users, using offline mode by default without the friction of having to install the application from an App Store.

The Web is the App Store.

2. The web will be totally based on components

The Web has been crying for components since Java Standard Tag Library and similar. Many solutions that tried to implement components in the server-side haven't worked outside enterprise level for several reasons, the most important was low quality of user experience.

Today, the native implementation of Web Components is fixing most issues. Everything is using the "component" concept, although with different implementations. Bootstrap, React, Angular... the trend is that this cry for components will continue until a pattern emerge and become the real or de-facto standard.

Components are the future.

3. Functional Programming will be the fundamental basis for writing JavaScript

Many years ago, Functional programming started with the theory and went down to the hardware requirements, at the cost of performance. Imperative programming gave birth to Object Oriented, which started with the hardware requirements and went up to the theory, at the cost of legibility.

Today, those performance requirements are not necessary anymore as they were in the 70's. We have astonishing computing power in our pockets and with that a unique opportunity to ignore irrelevant optimizations in favor of the practical legibility and functional aspects of Functional Programming.

In the web, JavaScript started to become functional since the day we started creating global functions to use in the HTML onclick event handlers. This legacy is still here, React and Angular are proof of that, and it is not going to die soon.

The amount of work to change the legacy structure of the web is much higher than the capability of developers in understanding different paradigms. The web ecosystem will merge the legibility from Functional Programming, the performance of Imperative, the organizational idea of Object Oriented and the practicality of Aspects.

However, Functional Programming will be the fundamental base for the whole code writing.

4. The Brave browser will become the second most used browser in the world and will drive the ad-block philosophy the same way Opera drove the Tabs philosophy

The social circle of Brendan Eich has everything: influence, resources, trust, open ideology and good ideas. He helped the web in the Browser Wars and started something, now he and his team will help the web to go through this new Ad-block War and will start something else.

The Brave browser will become the second most used browser in the world, losing only to Chrome, which will continue to grow.

5. State-based architecture with Event Sourcing will be the standard pattern on how to design the front-end.

The idea of storing events is something that clearly assembles the actual reality that we live in, inside 4 dimensions, where time goes only forward from the perception of two observers in the same place.

Git, Redux, Elm and the Blockchain are basically Event Sourcing with a different name, and more patterns are about to emerge that will use this, not just on the web, but in other parts of the software ecosystem.

Event sourcing will become standard in the front-end because of its ability to handle user actions just like how we perceive real life from an evolutionary perspective.

6. The core of JavaScript libraries and projects will start to be built without being tied to a specific state-based architecture implementation or framework.

Innovation is driven by learning on the shoulders of giants. jQuery, Angular, React, Backbone, Redux... they all will act as the giants whose shoulders will serve as an inspiration to start building things that are not dependent on any specific framework, library or pattern.

Application code will be pluggable to any vendor and the core will be just JavaScript.

7. A standard pattern will emerge to write CSS concerns in JavaScript

I remember the first time I saw React. It was attending a talk from one of Facebook engineers, Stoyan Stefanov, on BrazilJS 2013. Everyone was mocking the fact that he was using HTML inside JavaScript, violating the religiously agreed separation of concerns between JS, CSS, and HTML. Then one attendant asked why they didn't use Angular instead. The answer was: "What is Angular?".

We have learned with React that no paradigm is absolute, and everything can be challenged.

Today we are creating new languages to write CSS efficiently (SASS, LESS, etc.), but why creating new languages, why not just using JavaScript? Everyone knows how JavaScript works and we can achieve the same thing without inventing another language.

There is already a trend to use CSS with JavaScript. Something will succeed and become mainstream.

It is not a matter of "if", but "when".