Settings

Theme

The State of JavaScript Frameworks, 2017

npmjs.com

51 points by freeman478 8 years ago · 18 comments

Reader

abritinthebay 8 years ago

I'm actually quite shocked at how dominant Backbone was. Granted it was when npm was less popular, but still... impressive.

React dominating, as expected. Vue growing, which is nice. Angular and Ember both seem to hanging in there but it's clear they aren't where the community is interested.

I think we all knew that, but it's nice to see numbers. Kind of sobering to see Angular and Ember are basically as popular as Backbone is tho. Of the two - Ember seems more healthy.

  • simlevesque 8 years ago

    I know that some frameworks were built upon backbone. You'd use frameworkX which would wrap Backbone. You wouldn't use Backbone directly.

wppick 8 years ago

It's a shame that Angular2/4 hasn't gotten more traction. It's really well designed in my opinion. People seem to be flocking onto the react train (possibly mindlessly). I found react to be quite lacking. I don't like redux and it's crazy indirection, and I haven't been able to find a way to handle forms in react that even comes close to angular2/4.

  • robwormald 8 years ago

    Angular core team here - unfortunately, this post ignores Angular 2+ entirely (its @angular/core on npm) - the numbers are only for AngularJS (1.x). We’ve reached out to the NPM team to get this corrected.

    See https://npm-stat.com/charts.html?package=%40angular%2Fcore&p...

  • cc81 8 years ago

    Not specific for forms but have you looked at MobX instead of Redux? I think that is a better fit for most applications and you don't need so much boilerplate and diffrent thinking.

  • chillax2 8 years ago

    The reactive form framework built into angular is everything I wish I had when working on an angularjs application.

    I'm working on a new project in angular and I'm very impressed with the built-in routing support. Also, I wasn't a big fan of using rxjs Observables everywhere at first, but they are now my favorite thing about writing javascript.

    I'm really looking forward to taking advantage of the service worker support as well.

  • dbbk 8 years ago

    I mostly use Ember and have been working with React recently. I'm kinda baffled that it's as popular as it is. Nothing works out of the box, it's an exercise in frustration trying to get an SSR app with asynchronous-data-loaded containers working. This all just works out of the box with Ember.

    I can't help but feel like it's only useful as a low-level primitive that is still lacking a "full stack" framework on top. Even Create React App, which is an official project for this purpose, falls way short of what apps need in 2018.

    • chrisco255 8 years ago

      This works out of the box with Next.js (a React-based framework), which is published by Zeit, and has SSR, lazy loading, file structure based routing, etc all set up for you.

  • abritinthebay 8 years ago

    > I don't like redux and it's crazy indirection

    Can you explain this? There's very little indirection (if any) in Redux.

    • acemarke 8 years ago

      I'm a Redux maintainer, and both Dan Abramov and I would disagree.

      Describing behavior as plain object actions _is_ a form of indirection, compared to code that directly applies a state update. It's a tradeoff. Use of plain object actions takes some more code, but opens up the power of middleware and time travel debugging.

      • abritinthebay 8 years ago

        Surely that’s abstraction rather than indirection?

        Maybe you’re using it in a different context than I’m used to but I don’t see anything indirect about “call function that passes it’s result to another that updates the data”.

        Sure it’s not “update state directly” but that would make every pattern “indirect” which makes little sense.

        What you’re describing would make any MVP, pubsub, or observable system indirect. If so, well, fine - fair enough - but it still makes OPs complaint strange.

        (Thanks for all your work btw)

        • acemarke 8 years ago

          Yeah, I'd agree that pubsub _is_ a form of indirection in and of itself.

          For comparison:

              state.counter += 1;
          
          vs

              store.dispatch({type : "INCREMENT_COUNTER"});
          
              // counter slice reducer
              case "INCREMENT_COUNTER" : return state + 1;
          
          That's indirection, because we're no longer going in and modifying the state right there. So yes, any function call that encapsulates or abstracts behavior would be a small form of indirection, and the act of describing the event or desired update as an action rather than directly implementing it is definitely a form of indirection.
          • abritinthebay 8 years ago

            Well yes, ok, but as you said - that makes function calls technically indirection.

            So, as before, sure - that's fine, but it makes the original criticism a bit... strange.

youeseh 8 years ago

What about Svelte / Sapper? Too small to register?

  • nasso 8 years ago

    What about insert any of the other 40-thousand framworks?

    Probably too small to register, yes. Js has it's share of frameworks. There are alot of them...

Keyboard Shortcuts

j
Next item
k
Previous item
o / Enter
Open selected item
?
Show this help
Esc
Close modal / clear selection