One of the things I don't think it accounts for in talking about the downfall of something like jQuery is that as time goes on, the questions have already been asked.
So of course there's going to be less questions asked about jQuery in 2017 versus 2009, because if I need to figure out how to select elements based on an attribute rather than a class or id, it's already there.
It is not really a brutal lifecycle at all, to be honest.
Everyone loves a good rant about how fast the JS frameworks burn out, but it is not frameworks that burn out, but rather:
In the 8+ years since Iphone/Android duo made a HUGE change in how we consume web content, we went from:
And I could go on and on and on and on.
The DOM api matured during these years. The renderers got replaced. Their performance altered dramatically. Layouts went from "JUST USE TABLES" towards CSS, then towards Compile-to-css alternatives, etc. Single-core event systems got SharedArrayBuffers, webWorkers, we got from callbacks to promises, towards async/await. And do not get me started on almost getting observables properly.
The web has seen more transformations in terms of what is an "app" or a "website" in 8-10 years than ANY OTHER area in programming. It is only natural that widely different tasks need widely different tools to work with.
The interesting story in this post is not about JS frameworks. It is about StackOverflow.
The Ember community made a proactive decision to abandon StackOverflow around the 2.0 release (about 2.5 years ago). StackOverflow simply does not provide the tools we needed. For example when you answer a question: Are you answering for version 1.0 of a library? 2.0? Perhaps the "correct" answer for each is different. Perhaps, over time, an answer that once was correct is now suggesting something deprecated or not in line with best practices.
StackOverflow doesn't provide any features for dealing with versioning and changes in what is correct over time.
If your community has a StackOverflow moderator, perhaps you can update all the answers you want on a regular basis. I don't know, because our community had no such person, and the StackOverflow team was disinterested in helping us come up with a solution (the Ember project reached out).
Additionally as a tool matures (Ember is over 5 years old) you take more of this stuff under your own wing. Ember has a robust set of companies offering video training, in person training, and books. We have a community chat, a forum, and very active meetups. All of these things are controlled by members of our community, meaning they can respond to changes more fluidly than StackOverflow (moderated by some people outside our community) ever could.
StackOverflow just is not designed for long-lived multi-versioned software. So guess what happens? Users of that software don't stick around on StackOverflow. For living projects the short-term trend will almost always look better than long-term trends.
Ember's story here is not universal. I'm glad there are developers finding StackOverflow useful for other libraries. I think the story StackOverflow should tell is one that focuses on what they do well. But to draw a meaningful lesson about the JS community as a whole from such a idiosyncratic data source is a fools errand.
The PHP and Vue correlation can at least partly be explained by the fact that Laravel, a popular PHP web framework, has first-hand support for Vue and installs Vue by default in projects bootstrapped with their cli tool.
As an aside from the interesting article, does any one else find it pretty scary and privacy invading that stackoverflow think it's ok to match our IP addresses to the company we work in?
It seems like a massive invasion of privacy (which I guess lots of websites are doing).
But to me that SO can so casually mention the mass surveillance and privacy invasion they're doing without thinking that there's anything wrong with it is the worst part of it.
I certainly never knowingly agreed that they could check my IP address and then try and figure out what company I work at from it.
EDIT: Once GDPR is live in the EU, I think it might be interesting to see if I can challenge this privacy invasion and inappropriate use of personally identifying data. I guess we'll see if GDPR has any actual teeth in this instance.
> Stack Overflow Trends lets us examine how each of these technologies has been asked about over time.
So what are we measuring here? It seems obvious that more popular frameworks would generate more questions, but so would:
- Newer ones which not as many people are familiar with.
- Poorly-designed ones which lots of people nevertheless use.
- Ones which disproportionately attract inexperienced devs.
Why is the measurement on questions asked for the first couple of graphs and then user traffic for the latter set? I wonder if traffic is the better measurement for the first two as well but I bet the graphs won't look quite as doom and gloom.
> PHP developers [...] visit a disproportionate amount of Vue.js questions.
I would guess this is because the installer for Laravel (one of the most popular PHP frameworks) defaults to scaffolding a Vue.js app for your frontend.
Remember that Merb was merged into Rails? That's a community converging, that's what brought Ruby to the point that it is recruiter-speak synonymous to Rails.
In the JS world: not so much. But that prolly has many reasons. I can think of: the language changing rapidly, the community not very "close", people coming to JS from widely different places, and the fact that a JS framework can span either the FE or the BE or both!
I thank YUI and later jQuery for getting me my first real software development job.
Today it looks surreal that a mere portfolio of mind boggling animation effects would be enough to get a 21 year old an $84k job, but back in the time of peak web 2.0 craze, just having words jquery and 3 years experience on your resume was just enough to get 3 to 4 calls with ready offers every month.
It's easy to see graphs trending down and say, oh, interest is waning. But the initial spike could just be lots people going through a learning curve. It tells you something about popularity, but ease-of-use, quality of docs, etc. must all factor in as well. I tend to see the high number of questions on certain frameworks as a red flag.
IME Vue is so well designed, that I hardly have any issues with it. If I do, my go-to reference is the official documentation.
You shouldn't base your usage assumptions on the amount of questions asked; Vue just doesn't require so many questions...
My question as a Java/Swing developper is this: what is the difference between React and Web Components? As far as I understand, both create self-contained components that you can use in your HTML, and that will react when you alter their DOM structure (for example changing an attribute value, or binding an HTML input value with an internal value inside the component).
And from that perspective, will we see in the future off-the-shelf HTML components (based on React or Web Components) just like we can use custom Swing components ?
Pretty much a Gartner's Hype Curve like behaviour on each case. Accelerated adoption, a peak, then delusion kicks in causing many people to lose interest and step away from the technology. Late adopters find lower barriers of entry later on caused by lessons learned and improvements made to the same technology. Usage increases again but a lower level when compared to the initial peak. Expectations around tech's capabilities are now more concrete and realistic, bringing stability to the ecosystem as a whole.
About to make an App using React(and react native?)
Up until this point, I usually would make most things from scratch and pull in libraries sparce. No big deal because my previous programs didnt need to. (Self taught programmer for 11 years.)
For the next 3 months, I'll be working on this almost alone. Is it worth using some of my resources to hire a React developer?
Also, this topic implies React will be gone in about ~5 years? That sounds good for me.
I moved my frontend (I mean "in browser" by that) dev to elm about a year ago, and it's been a year of peace. I know elm has flaws, and it's development workflow can be criticized for being too slow or conservative, but it's been so predictable, so easy to work with, so maintainable and so solid in production, I have never been so happy about frontend dev.
Brand new frameworks have zero docs and zero questions in Stack Overflow. Older frameworks have (hopefully) complete docs and a library of SO questions. In between you get a gradient.
I'm just not convinced that the data they're looking at means what they think it means.
Just because the number of questions decreases about a framework does not mean people have stopped using the framework. I ask very few questions because I am normally working behind the bleeding edge and can get my questions answered simply by searching.
Was honestly surprised to see Vue.js was so tiny in comparison to Ang and React regarding "% of Stack Overflow questions that month".
I thought it was much bigger
Why are 'angular' and 'angular.js' seperate tags?
Knockout isn't a Microsoft technology
I wonder what effect this has on usage. How likely are new developers to use it if virtually every question they have is answered by this (no matter how irrelevant the answer should be today).