With the technological evolution of the Web stack, staying updated and productive in the front and back-end is increasingly complicated, to the point of questioning whether meeting those expectations is more a myth than a reality.

The origin of the “Full-stack”

When this nomenclature began to be used for this profile, in the early 2000s, Web technologies were clearly less complex and the options to choose from were less numerous:

There were three or four major application servers, all in charge of maintaining the state of the application, applying the business rules and generating the UI of the clients. The languages and environments could vary, but the client-server model, the development patterns and the techniques used were relatively similar.

All the DBs followed the relational model, with SQL query languages. Having a domain of the SQL-92 standard, it was possible to jump from one SGDB to another in a reduced time.

The front-end used a less powerful Javascript and a DOM based on HTML4/CSS2, oriented only to display documents on desktops with screens of similar resolutions.

The Internet bandwidth could be up to 100 times smaller than the current one.

In this context, it was perfectly possible for the same developer to take responsibility for the entire development.

The full-stack profile was born!

And this term really became popular especially with the expansion of Facebook, which apparently only hired developers with this profile.

The evolution

Since then, the evolution of front and back-end technologies has been considerable:

There has been a fundamental paradigm shift about where the state of an application resides, which has clearly migrated from the back-end to the front.

This change of paradigm has also modified the center of gravity of the knowledge of the full-stack developer, who has gone from being, at the beginning, a back-end expert with knowledge of front, to be now more a front-end expert with good knowledge of back.

This change of paradigm has also modified the center of gravity of the knowledge of the full-stack developer, who has gone from being, at the beginning, a back-end expert with knowledge of front, to be now more a front-end expert with good knowledge of back. Javascript has improved and sophisticated (ECMAScript 5, 6 and 7) to the point of being able to implement software engineering solutions at a level very similar to that of C # or Java.

Modern JS frameworks are almost as complex as the back-end frameworks, as the AngularJS or Ember learning curves test, starting from scratch, or the relative ease of adaptation of the back-end developers that are passed to the front.

Modern JS frameworks are almost as complex as the back-end frameworks, as the AngularJS or Ember learning curves test, starting from scratch, or the relative ease of adaptation of the back-end developers that are passed to the front. The browser’s virtual machine has continued to evolve, from the mere presentation of documents from the beginning to becoming a true platform for applications.

The last characteristic of the object orientation paradigm that was lacking, the encapsulation, has been resolved at JS level for some time now, and now it is also at the DOM level, with standards such as the Shadow DOM or the Custom Elements.

The mobile world

At the beginning of the current decade, the mobile environment was added to the desktop environment with its own user experience.