Slashdot Mirror


Stack Overflow Stats Reveal 'the Brutal Lifecycle of JavaScript Frameworks' (stackoverflow.blog)

A developer on the Internal Tools team at Stack Overflow reveals some new statistics from their 'Trends' tool: JavaScript UI frameworks and libraries work in cycles. Every six months or so, a new one pops up, claiming that it has revolutionized UI development. Thousands of developers adopt it into their new projects, blog posts are written, Stack Overflow questions are asked and answered, and then a newer (and even more revolutionary) framework pops up to usurp the throne...

There appears to be a quick ascent, as the framework gains popularity and then a slightly less quick but steady decline as developers adopt newer technologies. These lifecycles only last a couple of years. Starting around 2011, there seems to be major adoption of a couple of competing frameworks: Backbone, Knockout, and Ember. Questions about these tags appear to grow until around 2013 and have been in steady decline since, at about the same time as AngularJS started growing. The latest startup is the Vue.js framework, which has shown quick adoption, as it is one of the fastest growing tags on Stack Overflow. Only time can tell how long this growth will last.

"Let's be honest," the post concludes. "The size of a developer community certainly counts; it contributes to a thriving open source environment, and makes it easier to find help on Stack Overflow."

30 of 165 comments (clear)

  1. And maintainability? by plopez · · Score: 4, Interesting

    What happens if you need to patch or upgrade in a few years? Like for security? Do you have to rely on unsupported frameworks or throw everything away and start over? How does it work?

    Remember, companies pay huge licensing fees exactly for support.

    --
    putting the 'B' in LGBTQ+
    1. Re:And maintainability? by 110010001000 · · Score: 4, Insightful

      You throw it away and start over. There are a million JavaScript monkeys out there that are willing to do it. It keeps them busy.

    2. Re:And maintainability? by 110010001000 · · Score: 2

      You don't need to get to 1.0. It is Agile.

    3. Re:And maintainability? by Anonymous Coward · · Score: 5, Funny

      Like for security?

      Javascript doesn't support security, so that's a non-issue

    4. Re:And maintainability? by PolygamousRanchKid+ · · Score: 4, Informative

      What happens if you need to patch or upgrade in a few years?

      In this nude gig based economy, no one stays at a job long enough to do maintenance. Once the gig is shipped, you'd best already have moved to a new job.

      It's kinda sorta like a combination of Bitcoin pin the tail on the donkey. The last one holding Bitcoin before the crash loses, as does the donkey last original developer to leave the company, who gets all the defects pinned on him.

      Maintenance will be outsourced to India or China.

      --
      Schroedinger's Brexit: The UK is both in and out of the EU at the same time!
    5. Re:And maintainability? by AmiMoJo · · Score: 2

      You ask "what are some good replacements for last week's framework?" on Stack Exchange.

      That's what Stack Exchange is. Lurching from one fad to another, with bad advice and half baked ideas from start to finish.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    6. Re:And maintainability? by OrangeTide · · Score: 2

      Is this your first time using web sites? It's all shit.

      --
      “Common sense is not so common.” — Voltaire
    7. Re:And maintainability? by Anonymous Coward · · Score: 3, Insightful

      All the effort people go through to design a site with shittons of flashy interactive bullshit, then I come along and strip every last bit of it out with adblock filters until the page is nothing but a 5 kb text file with just the info I actually came to see.

    8. Re:And maintainability? by cascadingstylesheet · · Score: 4, Interesting

      What happens if you need to patch or upgrade in a few years? Like for security? Do you have to rely on unsupported frameworks or throw everything away and start over? How does it work?

      Remember, companies pay huge licensing fees exactly for support.

      Well, you could just keep using jQuery like we do. It's still maintained and developed.

      It won't get you 100 recruiter calls a day, but hey.

  2. Still just using jQuery/UI by Anonymous Coward · · Score: 2, Informative

    Still just using jQuery and jQuery UI. They do pretty much everything I need. All HTML generation happens server side, and jQuery simply inline replaces the HTML content from whats pulled from the server. Doing things this way means only 1 UI stack, and it works across all environments, since only the servers need updating (plus of course routine updating of the jQuery/UI JS files themselves)

    1. Re:Still just using jQuery/UI by guruevi · · Score: 3, Insightful

      Exactly this. The problem with Angular and all the other libraries is that they're trying to solve the problems of 'simple' libraries like jQuery but then end up even more complex or break all sorts of convention and expectation trying very hard not to become jQuery, and then you get a new library trying to solve whatever problem is in that library.

      What you need in a framework (regardless of language) is not complexity (trying to do "everything") but simplicity. If the framework is dictating how your application should work/flow/represent the data, you're going to run in a situation sooner or later where your framework doesn't quite fit your problem and then you'll spend an eternity trying to make it work and you'll end up writing most of your code in the native language anyway.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    2. Re:Still just using jQuery/UI by Paul+Fernhout · · Score: 3

      Yes; thus Rich Hickey's talk on "Simple made Easy": https://www.infoq.com/presenta...
      "Rich Hickey emphasizes simplicity's virtues over easiness, showing that while many choose easiness they may end up with complexity, and the better way is to choose easiness along the simplicity path."

      I agree on Angular having a lot of "accidental complexity".

      I've also run into the "leaky abstraction" issue you reference, like with the Dojo Toolkit and Dijit -- where I ended up spending large amount of time trying to understand why Dijits behaved unexpectedly and to make kludgy workarounds. People hope some frameworks will spare them from learning details of CSS and JavaScript, but in the end, edge cases and bugs mean you still need to learn all that -- as well as an arbitrary framework with its own quirks.

      I much prefer the combination of using JavaScript/TypeScript with Mithril/HyperScript, Tachyons, and a Flux-like one-way-data-flow architecture. You need to know JavaScript and CSS somewhat well to use those libraries -- but they are simple enough that they rarely do unexpected things, require long debugging sessions, or get in the way of doing anything advanced that you want to do. Those libraries are not perfect -- just a lot better than something like Angular (which I have to deal with for my day job; see also my related comment below). And those libraries are simple enough that any reasonably good developer could maintain them on their own if absolutely required.

      One of the reasons such libraries don't as much attention as they should is precisely because they are so reliable and simple to use. Unlike Angular, neither Mithril or Tachyons *requires* thousands of StackOverflow questions to learn how to use it, debug it, or upgrade it. In a way, picking libraries based on numbers of SO questions or blog posts on it is kind of like picking a car based on how many complaints are filed against the manufacturer with the Better Business Bureau. That's not a 100% valid comparison -- but there is more truth there than one might think at first.

      --
      A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
  3. What does this say about Javascript? by mykepredko · · Score: 5, Insightful

    There is so much wrong about Javascript revealed here that I think we have to question its use going forwards.

    The language itself is a great start to programming websites but the need for frameworks, which become "flavours of the month" that makes support so much more difficult as time goes on and the framework goes out of favour resulting in companies scrambling to find people with the skills to maintain them (sort of a short term Cobol analog). This gets worse when you realize that most web page developers don't know how to code and are using published features of the frameworks or example snippets on things like Stack Overflow.

    What about security of the various frameworks and ensuring they don't do anything nefarious. I guess the extreme examples would be collecting customer data and running cryptocurrency miners on end-users webpages - but I'm sure there are a lot of more minor security issues that can be hidden in these frameworks.

    Finally, I have to wonder about the maintainability of all these frameworks. On one hand, I guess frameworks with issues get identified by the community quickly and are abandoned (but, going back to the previous point, companies have to spend more money because their developers aren't competent to move the page to different frameworks).

    I'm not sure I see a solution for these problems. Maybe WebAssembly will be the ultimate solution (with tested and supported libraries that web developers can use and rely on) but I'm hoping that W3C and other groups are looking ahead to the next generation of web development tools.

    1. Re:What does this say about Javascript? by RightwingNutjob · · Score: 2

      The worst (or best) is when the monkeys load in the calls from jquery.org or somewhere without actually hosting a copy locally. This is especially a problem on corporate networks where a firewall policy of "Thou shalt not go outside the network" will now break the internal website. This means you now have to open up requests to the outside making another hole for proprietary data to leak out undetected, either with a compromised jquery.org or just making it look like normal traffic.

    2. Re:What does this say about Javascript? by HornWumpus · · Score: 2

      Telling you think that's a burn on AC. Speaks volumes.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    3. Re:What does this say about Javascript? by plopez · · Score: 4, Insightful

      Obscure code is bad code. If you can't do it simpler you;
      1) are using the wrong tools
      2) Don't know what you are doing
      3) don't understand the first thing about programming, which is 90% of the cost of a program is maintenance
      4) trying to be clever, which is stupid

      I hereby sentence you to 5 years maintnce programming on code produced by clueless programmers like yourself.
      (odds are in 6 months you won't be able to fix you own code.)

      --
      putting the 'B' in LGBTQ+
  4. Re:One JS to rule them all. by Hognoxious · · Score: 2

    what problem's are the JS frameworks suppose to solve?

    I can see a major need for stripping aberrant apostrophes.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  5. Re:Its just GUI development by HornWumpus · · Score: 2

    On the other hand, you had Swing. When Sun won a victory over MS and got Sun Java included in Windows, I said MS should retaliate by also including Swing. Use Swing to render the Sun logo at startup...Provide instructions so users could disable the whole mess and have a machine that was usable in less than 10 minutes.

    Clusterfucks have always existed. Pick the right tool for the job. Old advice but still valid. Avoid magic bullets, they are always bullshit.

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  6. Vanilla.js still keeps it's #1 position by dremon · · Score: 3, Interesting

    As the fastest and leanest framework

  7. Try Mithril and Tachyons by Paul+Fernhout · · Score: 3, Interesting

    As a once Delphi programmer, that is one reason I like the combination of JavaScript/TypeScript, the Mithril vdom https://mithril.js.org/ (which uses a "HyperScript"-like API to define HTML via code), and Tachyons http://tachyons.io/ for embedded CSS where each class defines the CSS effect (e.g. "underline") -- along with a simplified Flux-like one-way data flow architecture. Although people could swap out Mithril and Tachyons for similar systems to get a similar effect.

    Sadly, for my day job I am stuck using Angular, which is a my-way-or-the-highway framework with a lot of questionable design choices leading to excessive complexity and difficult debugging.

    --
    A 21st century issue: the irony of technologies of abundance in the hands of those still thinking in terms of scarcity.
  8. Vue by richardtallent · · Score: 5, Interesting

    I started using Vue this year. I evaluated React but I just couldn't enjoy the JSX syntax. Angular 2 had just come out and I found it to be far too obtuse, too far from "the metal." I briefly experimented with Riot, but it was losing IE11 compatibility too fast.

    Vue hit the sweet spot for me -- the ramp-up was easy, the code and API have a small but powerful footprint, it works well either interpreted in-browser or compiled via webpack, the Chrome dev tools are great, and I didn't have to learn the entire ecosystem (Vue, Vuex, Axios, etc.) to become productive. Coding single-file components reminds me of the good old days of writing server-side ASP.NET controls -- markup and script are separate, the lifestyle is simple to grok. The framework just does one thing--it handles the DOM update/manipulation details, allowing me to focus on behavior and state. I also like that the vast majority of my Vue code isn't really "vue," it's just plain HTML and JavaScript, so whatever comes next (web components, etc.), the transition will be much less painful than if I were using a more opinionated framework.

  9. Re:One JS to rule them all. by PPH · · Score: 2

    Wait a sec. I just linked to a library that puts them back in.

    --
    Have gnu, will travel.
  10. You want Skynet? Cause this's how you get Skynet by Tenebrousedge · · Score: 2

    In this nude gig based economy

    What fresh capitalistic hell is this? It's official, we're done as a species. Our only hope is that the robots get tired of looking at us meatbags and do us all in.

    --
    Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
  11. Wrong interpretation by tomxor · · Score: 2

    It says it right there on the Y axis of their graph: "% of stack overflow questions that month"... When you don't know how to X in framework Y? you google, and probably land on stack overflow if the question exists; you don't post another question. This metric doesn't equate to popularity it equates primarily to question saturation and secondly to popularity in terms of uptake (less questions asked by advanced users).

    We all know JS frameworks come and go quickly compared to other languages but this analysis is the height of numerology... if you're going to do some statistics be objective.

  12. It's not about JavaScript by tomxor · · Score: 2

    It's not about JavaScript because A) all the big popular frameworks are some kind of MVC, they are all about interfacing with the DOM and users, JavaScript is just what's available. B) There is a work in progress standard to better solve this problem as part of the web platform.

    Also, the interpretation of these stats is flawed, it assumes new questions asked per month equates purely to popularity, but if you give it more than 2 seconds of thought you realise that there will be a saturation of common questions being asked from the release of a new framework that will die down, the initial spike is additionally due to the existing developers learning the framework, the baseline it tapers of to will be the rate of new developers taking up the framework but will be difficult to distinguish.

    We all know JS MVC type frameworks come and go, they are each and experiment and a path towards learning how to do MVCs well on the web, but this analysis is just someone wanting to see what they think is true.

  13. JavaScript is a toy. And toys win. by Qbertino · · Score: 2

    People like to play with toys. And toys win in the end. Remember the toy computer called IBM PC with it's 8086 CPU? It was a toy for people to play with. And play they did. Now it rules the world (ok with bad CPU bugs these days, but you get my point).

    Same with JavaScript. It's a toy. People like to play with it. Nobody asks bizar licencing fees for it. See the countless frameworks out there? Toys win. Believe it or not, JS is moving into Java territory as we speak You remember Java, do you? The language that was intended for IoT ... I'm sorry ... the "Network is the computer" thing? Upload a script and have the client run it? That Java only got hold on the server. Where it never was intended to go. And now JS is coming from the client and moving into it's territory. A silly toy. No chance in hell for professional applications. Just like the PC back in the day.

    That JS has so many Frameworks constantly in the works is actually a good sign of health. Prepare for incoming. Toys win.

    --
    We suffer more in our imagination than in reality. - Seneca
  14. too far from the Metal? by Ayano · · Score: 2

    Metal? Somewhere a C kernel programmer is laughing.

    --
    I don't read AC
  15. Been true for a long time. by HeckRuler · · Score: 2

    I saw this writing on the wall WAAAAY back in 2004. I thought to myself "Man, web-dev tech is in constant turmoil. I've got on option about which tech I'm going to learn. Do I learn something that will be useless in 4 years or do I learn something that will be around forever." And long story short, I'm an embedded SW engineer working on Satellites in the one true language that's absolutely perfect for every application ever.... C.

  16. StackovweOverflow Javascript by cstacy · · Score: 5, Funny

    try{
        // Try something wrong here
    }
    catch(e){
        var xcb="http://stackoverflow.com/search?q=[js]+"+e.message;
        window.open(xcb, '_blank');
    }

    // https://github.com/gautamkrishnar/tcso/blob/master/javascript/tcso.js

  17. The foundation is cracked by rhyous · · Score: 2

    JavaScript itself sucks. So no matter how good a framework appears to be, it sucks because it's foundation sucks, which leads to someone trying to fix it.

    Don't worry, it will be fixed.

    By removing JavaScript in favor of a type-safe languages compiling to WebAssembly.