The past, current state & future of JavaScript frameworks

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
As developers, especially when working in front-end web development, we can probably all agree that web development is changing all the time, especially front-end web development and the world of front-end JavaScript frameworks. I have identified at least seven phases of front-end JavaScript development evolution or front and JavaScript framework evolution. And the question is, are we now in the last evolution phase? Now, the first phase was in the '90s and early 2000s, when we wrote really bad legacy Vanilla JavaScript code, where we didn't have any great libraries or frameworks. Back then, browsers weren't super compatible, and writing JavaScript code was a mess. The JavaScript language also lacked many modern features that we have today. And to be honest, JavaScript was probably mostly used for annoying stuff, like pop-ups. Now, the world for developers and modern JavaScript-driven web user interfaces became much better and much brighter in 2006, when we entered the second phase of JavaScript evolution, with the introduction of jQuery. jQuery and AJAX. With jQuery, all these browser compatibility issues didn't matter anymore because we had one API that worked in all browsers, and writing JavaScript code was much easier. And building more complex JavaScript-driven web apps was much easier thanks to jQuery. Especially also thanks to AJAX, which was included in jQuery, it was possible to fetch data and send data behind the scenes without fetching a new HTML document all the time. And therefore, you could build interactive, reactive, and asynchronously updating web apps, which was mind blowing back then and really brought web apps onto a brand new level. Now, even though jQuery was a huge step forward, if you wanted to build even more complex web apps, which, of course, you want now that you saw what was possible, jQuery quickly reached its limits. It was around 2010/11 that we entered the third phase of JavaScript framework evolution, if you wanna call it like that. With the introduction of Ember.js, Backbone.js, Knockout.js, and most importantly, Angular JS, Angular 1, we got some powerful frameworks that made it much easier to build complex web user interfaces that were powered by clients, like JavaScript. These frameworks helped with state management. They made it much easier to reflect state changes back into the HTML document so that you didn't have to write every step on your own as you did with jQuery. But, of course, as always, it was not enough. Of course, these frameworks were a huge step into the right direction but they still had problems and limitations. You still had to write a lot of code, you had performance issues. For example, with Angular JS and it's two way binding. And that's why in 2013, we got React. Even though the React from back then doesn't have too many things in common with today's React, but we got React in 2013. And in 2016, we got Angular and also Vue.js 2. And these three frameworks are still the most important front-end JavaScript frameworks we can use today. Almost all more complex modern JavaScript-driven web user interfaces are powered by one of these three frameworks, and that's why we definitely entered a new evolution phase with the introduction of these frameworks. Of course, part of the reason why we still use React and Angular is that those are backed by Facebook or Meta, in case of React, and Google, in case of Angular. So naturally, there are big companies using these frameworks because they developed them themselves. And that, of course, helped with making sure that these frameworks sticked around and did not get replaced by new frameworks, but instead evolved themselves. As I mentioned, the React you know today and the React code you write today doesn't have that much to do with the React code you wrote back then in 2013. Nonetheless, you could say that we then entered a another evolutionary phase because we did not just have these frameworks, but we got lots of JavaScript frameworks. At some point, you could think that a new JavaScript framework was coming out every day. Now, to be honest, most of these frameworks are just niche frameworks. If you want to get a job, you are way better off learning React or Angular. They all solved different problems in different ways. And together, they were super important because they also pushed React and Angular and Vue forward because those also had to reinvent themselves over time, as mentioned before, because otherwise they would simply have been overtaken. So this entire phase of continuous improvement of these frameworks, of the addition of new features and so on was another super important phase in the history of front-end JavaScript development. Now, all these frameworks came up because we wanted to put more and more JavaScript code into the browser. We wanted to control the entire interface from inside the browser because that allowed us to build highly interactive user experiences. But the problem with that approach is that more and more JavaScript code moved into the browser, away from the server, away from the backend. Now, as a result, on many web pages that use these frameworks, users have to download a lot of JavaScript code before the website becomes interactive, which can be a problem if you have a slow internet connection. In addition, since everything happens in the browser, data must be fetched and sent all the time. And for all these reasons, we might have pushed too far. Having everything on the client side might not be perfect. And that's why we entered another phase of JavaScript frameworks. We moved towards static site generation and moving more logic away from the client side again. For example, with Gatsby and also NextJS, we got solutions that allowed us to run some code on the server or even at built time so that we could ship static apps, which users could then visit, so that there was less client side JavaScript code needed and less data fetching going on when a user visits a website. Now, this phase, of course, isn't over. Static site generation is still important. And NextJS, for example, is still important, but also because it also continued to evolve. And that brings me to the last phase we entered up to this point. The phase where we are moving back to full-stack development. With NextJS 13, the NextJS team, for example, introduced a brand new way of building Next apps, where way more work would happen on the server, where React server components would be embraced to do work on the server. And even though this new feature is not finished and stable yet in NextJS 13, it's definitely the future of NextJS. And we also have alternatives, like Remix, or Astro, or SolidStart for a SolidJS, which also move more work back to the server, and which ultimately are about building complex full-stack applications which combined the best of both worlds. Allowing us to build highly interactive frontends but with all the work done on the backend that should best be done on the backend. And in my opinion, this is definitely the way forward. We will still use React because, ultimately, Next, and Remix, and so on still use React. But we will combine it with those Meta Frameworks to do more work on the server as well and to get the best of both worlds. Vue has NuxtJS, Angular has AnalogJS. And in my opinion, this trend is only going to accelerate. So therefore, what's the next phase? Or is this the last phase? Well, things will continue to change and evolve because they always do. But I think we have reached an important point in the history of JavaScript frameworks and JavaScript development. I think, as mentioned, that this full-stack approach, which combines these best aspects of the different ends is the future. But, of course, we'll see which new tools and technologies we will gain to make all these parts even more fun and easier. And therefore, of course, you could almost say that we're back at the point where we started. We are not back in the legacy JavaScript world, but we are back in the multi-page application world, just that we used PHP in the past and now we used JavaScript. But the important difference is that we now do have the best of both worlds. We now do have modern JavaScript with modern features, combined with the very powerful frameworks, like React or Angler, that make building highly interactive web user interfaces a breeze and much easier than it used to be. But it looks like we're now moving into a direction where we ultimately start combining that with more backend capabilities again. And, of course, it's not guaranteed that it will always be React and Next. It might be AnalogJS for Angular. It might be a brand new framework. It might be SolidJS, which is amazing with SolidStart. But I do think that it's this holistic full-stack approach that is the future of JavaScript frameworks.
Info
Channel: Academind
Views: 103,803
Rating: undefined out of 5
Keywords: javascript, js, frameworks, libraries, jquery, react, reactjs, react.js, angular, vue, maximilian schwarzmueller, maximilian schwarzmuller, maximilian schwarzmüller
Id: 5EsLj3JOdE0
Channel Id: undefined
Length: 8min 19sec (499 seconds)
Published: Tue Jan 31 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.