So before you get defensive about your favorite framework, let me explain why I think this shift will occur.
All of these issues are manifest in the most popular frameworks being used today. But there are also a number of specific issues that affect individual frameworks. So let’s take a quick look at each in turn.
AngularJS and Angular
This second issue—of code that is almost impossible to understand—was actually carried over into Angular 2. And while some see this as a reason why back-end developers can earn more, in reality it can make life miserable for developers. Take, as an example, the fact that Angular 2 contains instances of case-sensitive HTML, which not only violates the principles of HTML itself, but also forces many to implement an interstitial parser just to clean up the HTML that Angular 2 produces.
That’s true, up to a point. The problem is that React is not really an integrated framework, but rather a set of modules and components that often don’t play well together. Doing anything halfway complicated with React, such as implementing browser fingerprinting, means building a complex stack of components that you then have to constantly maintain and manage.
Ember and Vue and Aurelia
Finally, a quick note about some less well-known, and less well-used, frameworks. Most developers don’t have much exposure to any of these three frameworks, for the simple reason that they are not very widely used outside of their own niche applications.
It’s also worth a quick note here about why none of these frameworks has gained popularity, especially because in many ways they are the most “fully featured” of the systems on this list. Ember, for instance, is probably the most “frameworky” of the frameworks on this list, but it suffers from performance issues, the largest download size, the largest API footprint, and the steepest learning curve of any of the frameworks on this list.
The promise of ES6
That’s not to understate the utility of syntactic innovation. In fact, the majority of the new features in ES6 are essentially syntactic shortcuts. These include:
- Default parameters
- Template literals
- Multi-line strings
- Destructuring assignment
- Enhanced object literals
- Arrow functions
CLASS was reserved.
What this led to was arguments. Everyone turned to their favorite framework and used it to create an OOP interface. These were generally difficult to work with for anyone other than their creators, and they did not play nicely together.
Now, finally, with ES6, we have a standardized way of working with classes. ES6 classes use prototypes, not the function factory approach, where if we have a class
baseModel, we can define a constructor and a
Now, with ES6, we can all use simple commands—
export—to work with modules. Or at least some of us can, some of the time. Because, to slightly undermine my own argument right here at the end, this is perhaps the first place in which people are going to turn to frameworks again.
That’s because the way modules have been brought to ES6 is really pretty confusing. They don’t mirror the way modules are used in Node.js, and plenty of people are going to stick to that method.
The bottom line
Did somebody post an old article by accident here? ES6 was released in 2015!
Absolutely not! The latest ECMAScript standard is ECMAScript 2021, published this June.
I guess we would have realized by now if ES6 made frameworks obsolete…
I assume this is a date issue with the blog. And the answer is no.
It’s not just a date issue! They actually linked to a few articles dated 2020. I think this was written by someone who is oh-so-very out of touch that it’s downright laughable.
You don’t consider Vue as well known?
You are my spirit animal, Brian Berry.
I wondered the same. We’re here from the future to say that Frameworks are still alive and well, for better or worse.
Looks like Theo was taking his time with this article… About 6 years. Next article about ES7 could be in 2027 ?
Finally! Someone said it.
Now I do full stack with node.
I won’t say I don’t use libraries, but complete Frameworks just get in the way. The might be quick to develop, but they are always bloated and therefore never fast. And the three days you use trying to do something they were not intended to do, outweigh the time savings in the beginning. And to those saying es6 is already old, until it achieved ubiquity you couldn’t rely on using it in its purest form.
Really well written nonsense ^^
The author seems to be a eloquent guy, but programming is not his best skill 😉
The only thing this blogpost shows is how wrong the author was. I’m guessing it’s from like 2014 or something.
I was about to post the same thing hahaha. Idk what half this article is talking about. I guess, at the time of writing, vue3 was barely out.. or something.
I feel this article ia a bit disconnected from the world, at least the world that i see.
There are no newer “version” of JS after ES6. They are just yearly “upgrades” or revisions of ES6.
ECMAScript 2021 means the 2021 revision of ES6
Correct Eric, to the point that many developers still often refer to any recent update or revision as ES6 as well. The article has been updated to make this clearer than it was before.
The current version ECMAScript is ES12. Of course they kept counting. https://en.wikipedia.org/wiki/ECMAScript#12th_Edition_%E2%80%93_ECMAScript_2021
I’m glad I’m not the only one massively confused by this post…
lol i thought the same on this article why comparing es6 to framework, i thought I’m missing some updates
“ES6” is a bad name. It basically just refers to anything at all that came after “ES5”.
That’s what makes it a bad name. In fact, the name was already dropped— as you have rightfully pointed out— 6 years ago in favor of year-based versioning.
I do all work in vanillaJS, but still use this lowTimeJS (https://codepen.io/4m6/pen/bGLvdjm), is this a framework?
Angular (presumably AngularJS?) and Angular 2? Why would you bring up a 7 year old framework (or even older for AngularJS) in this context? Angular is on version 12, 13 is about to land. At least compare apples to apples.
If you find well-structured, modern Angular hard to understand, how do you understand ES6? It sounds like such a spurious argument, as though it is not equally possible to write messy and hard-to-understand ES6.
This is just silly. Enhancements to the core language after never going to obsolete any front end framework that handles routing, the virtual Dom, etc.
I’ve heard arguments that ES6 obviates the need for libraries like lodash or ramda. Even there I’d say that the value a library like ramda is tremendous. It provides a super capable and consistent “standard library” that is expressive and supports FP.
This article is terribly inaccurate and out of date. The entire premise of discussing ES6 (which has been out for several years) and even suggesting that syntactical improvements in the language will somehow make frameworks obsolete – is just plain idiotic.
This article is utter nonsense
I think that in your article you are drawing the wrong conclusions.
As someone who is _not_ a web developer this interesting article was a good overview of the bewildering (to me, as an outsider) array of frameworks and who uses what for what. Thanks!
I gotta say though I am a bit puzzled – I’ve been hearing about ES6 for _years_, what does it mean that it is only just now getting deployed? Not _quite_ as bad a development cycle as, say, Perl, or even C++11, but still … I thought the web was all about _rapid_ evolution? (I’m serious: what’s been going on there? Now I’m curious and have to google around for it …)
It means that this article is very, very, outdated.
ES6 has been in use for years. I and other readers have no idea why ES6 from 2015 is just now getting a blogpost.
The guy accidentally posted an article that was probably written in 2014 or something like that. Don’t let it confuse you. ES2015 has been out for years (I mean it’s in the name) and it definitely hasn’t killed any JS frameworks. If anything, they’re more prominent then even before.
The article is incorrect, ES6 has been out for years and is in wide spread use/support.
Even back when this article was time appropriate though, it didn’t really make sense.
There was never anything in ES6 that was plausibly going to render frameworks obsolete in some way.
People didn’t and still don’t use frameworks in web development because they need better ways to implement OOP or what not, or at least I’ve never had cause to consider that reason and it’s not something that factors in on a team/company level either.
Instead frameworks are much more useful for other reasons, like doing a lot of boilerplate for you in a well tested and externally supported way, and making CRUD easier, and handling interaction between the backend and front end (and it is MUCH better with frameworks than vanilla js).
I’m currently experience all the failings of vanilla JS, primarily that it’s not purpose built to help deliver dynamic html content, in excruciating detail right now myself, because a contractor we hired didn’t do the job to our requirements and for now I *can’t* use a framework, but do need the functionality of one. It’s not much fun, and very time consuming, and I wouldn’t have to do any of the unpleasant time consuming work *at all* if I was say, using react.
Do you mean that by picking a framework you avoid problems?
Frameworks are for people that isn’t programmers but wants to build something that works in the browser.
Developers doesn’t need this help, JS isn’t that hard, it’s quite easy creating websites in vanilla JS
Frameworks didn’t appear solely because the programming language had pitfalls, they also address the code reuse and “don’t reinvent the wheel” issues. If you do enough software development you’ll see the need for a collection of commonly used code, either one written by you, or a 3rd party one.
I think that the author felt nostalgic and post this
When was this article written? It’s been SIX YEARS since ES6 was released.
Looks like it’s not just this article, there are multiple articles from the same author that could be from the past.
Maybe, I’m living in the future?
This is one is the worst articles I’ve read. Clearly someone did not do their research. Even if ES6 was just released (it was released years ago), this article is still terrible.
The idea that frameworks bring syntactical sugar to the table and ES6 replaces that is severely misunderstood. Transpilers like Babel is what ES6 “maybe” is replacing, not frameworks.
Also the assumption that using multiple “frameworks” together is bad, like React/Redux, is completely incorrect.
If there is a tool that does the job well, then use it and completely ignore this ignorant post.
I totally agree with you. It’s a shame that I can’t upvote comments on this website.
Hello and thanks for your comment. Please allow me to explain a little better. I have definitely done my research (I can guarantee you this) but I will admit that I wrote this article as a fan of ES6 and not an objective professional. Of course, ES6 can’t replace frameworks and if you want my honest opinions, it never truly replaced transpilers like Babel either. The title was a “catchy” thing to attract the eye of the reader and read why ES6 still remains incredibly important 6 years after its release. Why it was a game-changer. With all due respect, you and many other commenters, focus on this hyperbole or on the date of its release (despite anything that came after was just an upgrade of ES6) and miss the point. Or maybe you’re one of these few who think that ES6 is trashy and offered nothing, so in that case I can’t change your mind no matter what I write or say to you 🙂
No, the problem is that you’re comparing apples and oranges in this article.
Frameworks like Angular, Vue and React offer so much more than ES6 has. Data binding, DOM manipulation, all kinds of functionality on top of “native” JS, and which would be illogical to add to native JS.
Native JS isn’t going to replace frameworks like that, simply because they solve different problems.
That aside, the fact that you even mention an framework as deprecated as AngularJS… That hasn’t been an industry standard in a -long, long time.
I’m sorry but this is even a worst excuse. You are being punished by the community because your title is clearly a clickbait (or call int “catchy”).
We expect that you defend your position for the title of this article and you, instead, give blurry reasons out of reality.
I’m sorry but it’s not hating ES6, that is great, but the way you, as a blogger/”journalist”/”someone_who_feels_has_something_to_say” covered the topic.
BTW, you miss the main advantage of Frameworks: it facilitates A LOT team working/team switching/landing in a new company. As you see, all the lack of the article is human, not technical.
Have a nice day!
I was going to rant about your poor treatment of Vue (more 1% of the questions asked monthly on SO relate to Vue!!), but I’ll settle instead for disagreeing with your argument altogether instead.
This is very confusing. How would these frameworks — which are all about re-rendering HTML as the underlying data changes — be replaced by ES6 classes and modules?
Ya trying to say it without sounding rude but it really seems like the author doesn’t know what they’re talking about here at all.
Specially when “modern” frameworks were built leveraging ES6 classes: Angular 2+, React, etc.
Even React now made classes “obsolete” by moving away from them into function components.
In addition to all the comments expressing confusion around ES6 being released in 2021…
I’m sorry what? ES6 has been around for years.
React is a LIBRARY not a framework
I don’t feel like this article captures _why_ someone might choose to use React or another declarative UI framework. React empowers developers to have a UI that is always in sync with their data, without having to write UI update logic. When the data changes, the UI automatically re-renders and deals with attaching and detaching event listeners. Without a tool to handle this, you need to either manage all of this imperatively or write helpers to deal with that for you. Helper functions would likely become a bespoke library that doesn’t handle the edge cases that React or modern declarative UI frameworks handle.
I’m sorry – there’s no way frameworks are close to dying out. Not only are their popularity increasing (and have been constantly doing so) but the time it takes for a team of individuals to achieve a common goal, is much easier in frameworks than using vanilla es6.
To me, this is like saying “you don’t need WPF because you have a new version of C# and you can achieve the same just by using that” – it just isn’t comparable
Oh, What? I think this article misses how ES6 is going to make JS frameworks obsolete? It’s just a review of frameworks but it doesn’t say anything about how ES6 can make them obsolete.
The only framework on here that’s threatened by es6 is ember, which has the whole ember object thing… other than that, es6 only enhances frameworks.
Also react isn’t a framework.
Take dependency injection containers as an example. Well, you can get by without one, certainly. But, if you want everyone to do it the same way one a project, then frameworks can provide that. Take organization of code. Left to individuals, you never know what you might get. A framework says, sure, you can program, but here’s where you need to put things.
Listen, I’m not a fan of how overboard popular frameworks seem to be, but some framework conventions save you time in the long, long run. You are free to establish your own conventions and see if others will agree with your choices.
Bottom line, when money is on the line, and not just your own personal time, businesses want reliable solutions. That puts the burden on professional programmers to learn not just language features, but frameworks, too.
Hey Anthony, thanks for your opinion and I certainly understand your point of view. The point I was attempting to establish is that the functions of ES6 and its subsequent versions released since 2015 means that the need for frameworks can gradually be reduced (though I agree with you not fully eliminated) when/where relying on the functions I listed. I knew it would be a controversial opinion as I indicated towards the beginning of the piece, and as I said at the end, we very well may have to retreat into relying on frameworks yet again.
I think you’re confusing frameworks with libraries like jQuery and Lodash… Those libraries are becoming redundant. Frameworks? Not at all.
C# 10 was release just in the past few days, there goes our need for Asp.net and EF Core because of the new ‘records’ feature. Alas, no.
Actually, since C# 10 was released this week, it’s not really comparable to the argument presented. Don’t forget that C# 6.0 was also released in the past decade, so there goes our need for there goes our need for Asp.net and EF.
Hey I can see this post just stepped out of a time machine. Welcome to the future. I’m sad to inform you that we still have to re-write our front-end using a new framework at least four times a year, which is then immediately obsolete. On the bright side, nearly all software developers work from home now. Speaking of which, did you happen to bring a hazmat suit with you? If not… well…
That is classic. Great humor!
This article is not worthy of being posted on Stackoverflow, is this a mistake or some joke?
Just the fact Angular is being used when obviously they are talking about AngularJS is enough
Imagine an article so out of touch it’s already outdated by 6 years the moment it gets published. They must’ve accidentally published the wrong article
The way this rant is written seems to be a person that only has done Hello World examples in frameworks and looked at v1 versions of frameworks that were clunky. Frameworks offer tons more than what the author complains about.
Guess what I do? I leverage ES6 inside of the frameworks :mindblown:
Now if the rant would be is JQuery Core or lodash needed, that would be a good rant. lol
Good one Eric! Actually, it made me laugh that you refer to my article as a “rant” as this is something my colleagues would say about me. I think some of you have taken the article’s purpose the wrong way. I won’t deny that I am a big admirer of ES6 and I will admit that in some ways I make it look like before ES6 there was nothing as John Lennon said for Elvis. I should have probably taken a more objective “look” while writing this article. However, I feel like many of you are focusing on dates, and the newer versions of ES6 and miss the point of this piece. It’s a medley to ES6 and all the drastic changes it brought. Let’s be realistic here, it doesn’t matter if it’s ES6 or ECMAScript 2021, as frameworks can never truly be replaced by it. I should have not exaggerated with the title and content as much as I did in order to “worship” #S6hoever denies the vast importance of ES6 is in serious denial I am afraid.
I think you are using dial up connection with IE because they are pure and that is the reason of this ancient scroll.
This is ridiculous. The portrait of Ember here doesn’t represent the current reality. Ember is for complex projects, which is a big differentiator.
This article is weird. It has very strong wording about popularity, but no data to back it up. I am guessing this might be an opinion based on old US job data or something, but based on other metrics React certainly doesn’t have a marketshare that completely dwarves everything. Honestly, if you want to talk about marketshare, jQuery dwarves about anything this article talks about. The author seems self-obsessed with the complexity of a very very outdated version of a library/framework. The article claims that it has shown why frameworks will be obsolete, but it completely misses the point why people use these frameworks. And the features this article promotes in ES6 I have literally been using for years now, and I have never felt that the things ES6 do for me make the things the framework do for me obsolete.
People won’t stop using *any* framework because nobody will start writing things from scratch. It has nothing to do with language features and last, people writing in typescript will growth because developers are lazy and typescript saves you from documenting stuff
Vue is an obscure and little used framework? Huh?
And, yes, obviously this article is old and the guy was wrong. What I wonder is what the state was of these frameworks back then. Did ES6 implement most of what the frameworks provided?
What I find that ES6 has basically replaced is any need to use jQuery. Sure, it has some easier to type versions of the things I do, but it’s easy enough to just use pure JS.
omg you are somehow writing this from 2015.
well if you can see this, in 2020 there is a new deadly virus and we already have a vaccine in 2021.
ah and no, the es6 wasn’t the end of js’ frameworks.
The most important reason why developers use frontend frameworks is easy DOM manipulation. That’s not mentioned anywhere.
Either an old blog was posted accidentally or this is an out of season April fools joke.
Well… I just wasted time reading a very opinionated article about a language version that I have personally been using for at least a couple years now… in production. As someone stated in an earlier comment, I could see widespread adoption of ES6 all but completely eliminating the need for libraries like LoDash, Moment (once the new features for Date are fully available) and others. But eliminating frameworks like Angular, React, Vue? There’s not even a comparison. Those frameworks do much more than what ES6 does and in fact, many of those frameworks ride on top of ES6. This article is almost akin to saying “The new V6 engine design will render all vehicle manufacturing plants obsolete.” Couldn’t be further from the truth.
Where is the dislike button?
Agreed, no need for .js frameworks anymore.
This makes virtually no sense (in any year). Frameworks weren’t invented to patch language shortcomings. Maybe you could make that case for some sort of library of helper functions like classic jQuery, but not with modern frameworks that are all tied up with issues around UI and data modelling. It makes about as much sense as a new version of C# rendering ASP.NET obsolete.
dto[key] = this.value;
This is almost enough code to create a whole form full of textboxes bound to a dto/model object, using a custom component, with its own scoped styles, imported from a module. It’s not perfect but it’s getting closer.
IMO the nail in the coffin will be if they add some kind of DOM object literals like JSX, and simpler data binding
It often boggles my mind when engineers ramble on and on in public about things that they don’t understand well. Do they not get that in the best case scenario, they severely hurt their reputation and in the worst case, foster bad practices by having an impact on among lesser experienced or skilled engineers?!
I personally can’t wait for ES6 to come out along with iphone 7, Windows 10, and headphones called Airpods.
In all seriousness, this is a fairly unlikely proposition in my opinion. Just look at J2EE vs. Spring in the Java world. I’m sure many thought Spring would become obsolete years ago. Also, the obvious point about databinding and web frameworks not being in the core library.
“Coupled with the fact that most of the frameworks we are using at the moment are either obsolete or unnecessarily obscure, we could see a tangible and permanent reduction in the use of frameworks over the next few years.”
I disagree on all parts.
Would be really interested to hear some reply of the author… Was is really posted accidentally like everyone assumes or is it your true opinion?
In case of the latter, would you please explain why? Because there was no real reason why Es6 should replace frameworks at all. You didn’t compare those frameworks and their features in any way (routing, data binding, Dom manipulation etc) Es6 has no out of the box features like these. Yes all of this can be written in Es6 without these frameworks but that was never to disquiss. You can walk 1000 miles as well and don’t need a car but the majority would do so.
Well, it has links to new articles, so it was at least written recently, and someone must have at least thought this was a good enough of an idea to write it at all, even if posting it may have been an oversight.
Honestly it’s not like I haven’t seen embarrassments like this almost daily on Medium, but it does make me cringe a bit to see something this . . . uninformed coming from such a well known organization.
OGX.JS solves all of the problems stated, as it is more working at component level where many components actually use one another, and where a tree of component and HTML templates can be written with a JSON markup. But it is hard to “compete” or even propose a new framework with a different philosophy because of the popularity of these mainstream frameworks, and gain some traction, and also because most programmers want to program and not really build products. If you want to build products, you should check out OGX.JS.
Side note about the CLASS keyword that is actually pretty slow in terms of performance.
I asked on Meta regarding this blog post. https://meta.stackoverflow.com/q/413092/2799037
The point is you can build your own tech stack based on some libraries that use native browser features. We still may need to use bundlers, transpiling, polyfilling etc to support older browsers but as every day goes by, more and more people do not bother to support IE11 as an example. Hence why this article may seem old and out of place. We’ve all been supporting older browsers which are not ES6 compliant and so rely on frameworks to do a lot of the hard stuff for us. But this is less of an issue now. Modern browsers allow me to create a single web page that imports web-components etc and which renders in a browser as is and is reactive. No compiling or using a framework, just a simple html file.
So I think the author is just saying that the important functionality that frameworks gave you can now be done natively in a modern browser so if you assemble the libraries you need (e.g. lit, μhtml, redux etc etc) you can develop in a browser with no compile steps required and no magic framework stuff in between.
Thank you so much for this comment, Paul. I am truly happy that some people won’t focus on the tree (the title’s hyperbole and program’s release date) and see the “forest” behind it.
@Theodoros: but why didn’t you say so in the first place? If you said and explained how great ES6 is, the majority had agreed.
Es6 is awesome and it clearly can replace certain libraries or at least reduce the need of certain helpers (array methods and such) I guess there is no doubt about it.
But your article was not “how good ES6 is” instead you compared it with frameworks and made it look absolutely awkward.
Everyone – Including you I bet would disagree and say this is all the way wrong. Then I say “well I was talking about the very first release of js, and it is actually not about how bad it is, but how good it became”
I tought as programmers technical articals wouldn’t require to interpret what the author might had in their mind… We are not in school anymore.
“There is a lot of author bashing going on here, when I think a lot of people have missed the point.”
It’s just like wondering, “Do we need numpy now that Python is more efficient? Do we need C++ now that C has an improved standard?”. Of course, we need them.
Thanks god there’s a lot of author bashing going on. This post should be removed.
@Paul French: are you a freelancer? This article only makes sense to a guy living in a basement.
Frameworks exist because there are actual TEAMS out there, and COMPANIES, making actual money and not theorical work.
The author and his article are self-conceited, the guy basically thinks he has invented hot water and wants everyone to know.
The comments ridiculing the article are well-deserved. We code for a living. I’m not sure he does.
Can we talk about AST for class components without babel for reading html? https://codesandbox.io/s/admiring-haibt-hnmkp?file=/package.json
Of course not, es6 empowers library/frameworks, does not kill them.
Obligatory “Betteridge’s Law of Headlines” (google it)
You lost me when you brought up classes. No one should be using classes in 2021. Functional paradigm is way better and framewoks like React have accepted and rolled with it which has made them 10x better.