12 ms·
2016 JavaScript Rising Stars
- gcp 10y agoLooks similar to http://stateofjs.com/ http://stateofjs.com/
- jbhatab 10y agoexcept very different results. This blog really shows how fast Vue is growing.
- bertjk 10y agoState of JS was a survey with questions and answers, this page counts "...stars added on Github, over the last 12 months". State of JS would better reflect the popularity of tools within the audience(s) that the survey was distributed in, this page really just shows what has had buzz in the last 12 months.
- juice_bus 10y agoHonestly, I was surprised to see Vue at #1 and not React.
- zumu 10y agoStars per year is always going to favor newer technologies. Which is why I believe this metric encourages framework churn.
- amirmansour 10y agoTrue, but there are other frameworks that came around the same time and have not reached the momentum of Vue.
- jaxondu 10y agoTwo factors why VueJS is popular: 1. It is adopted by PHP Laravel communities as the goto framework for frontend 2. It is adopted as underlying for Weex framework (similar to React Native) by Alibaba. Which makes it adopted fast by developers in China.
- caseymarquis 10y ago3. It's quite nice to use.
- doingmyting 10y agoI live in Boston and this is not surprising in the least. Right now for instance, the Vue meetups have 2x as much people signed up as the React meetups. At a meetup yesterday I asked a group of college kids why they were at the beginner meetup and they explained that they'd try React and couldn't quite figure out how to make a linguistic website. They thought Vue could get them going faster as it made more sense. I expect to see a lot more of this going forward.
- falloutx 10y agoFascinating to see Vue.js and Inferno both doing so well last year. Vue is definitely lot easier to learn than React, for new Developers, but I could be wrong since I haven't tried it a lot. Don't know how it scales up for large applications. Preact is also another dark horse. This year we are going to see a few more "react-like" UI libraries. In node, really happy to see Feathers catching up with other more popular frameworks like Express. First time I reached to feathers was by literally searching "Firebase Alternative". AVA the Test runner, really never heard of it at all. May be I am too behind in the "Test Runners" category. I only use Mocha. Also, they should have added a category for graphics libraries like Three.js, Fabric.js, Paper.js etc.
- ng12 10y ago> Vue is definitely lot easier to learn than React How so? Vue actually has a lot to it -- lots of template directives, computed properties, directives, etc.
- SparkyMcUnicorn 10y agoI don't know React but, since I know Vue, I'm confident that I could pick up React fairly quickly. The reason Vue was easier for me to learn is because it feels like regular JS + HTML, and single file components only strengthen that initial confidence when learning the framework. Vue just feels relatively normal and was an easier transition for me into the SPA world. React feels like an entirely new thing, even though they are extremely similar at the core.
- mattnewton 10y agoBut the complexity is layered in my experience. You can get very far by reading the guide and changing the names in the DSL to make your app/dashboard/etc and then ship that same day, without really learning any new concepts. Of course when you have to do something new or make a maintainable app you still have your reading ahead of you, but the 0-1 I got my app to do what it needs is really easy-going (again, in my experience for my limited use cases)
- spion 10y ago
- carsongross 10y agoOn the front end, intercooler.js[1] actually gained more stars in 2016 (~3000)[2] than Mithril (which I like, this is not to take anything away from the Mithril guys!) This was in large part due to a big HN bump in November. I know it's too contrarian and idiosyncratic to get a mention on a JS survey, but I have to get he word out somehow... [1] - https://github.com/LeadDyno/intercooler-js https://github.com/LeadDyno/intercooler-js [2] - http://www.timqian.com/star-history/#LeadDyno/intercooler-js&lhorie/mithril.js http://www.timqian.com/star-history/#LeadDyno/intercooler-js...
- insin 10y agoWhere are the star counts from? Create React App was created in 2016 and has more than 18k stars but is shown as having gained 5.6k stars in 2016 (I think it got more than that in its first week!)
- mxstbr 10y agoI contacted the author and those numbers have been fixed.
- goblinking 10y agoWe'll see if Vue has staying power. It's sort of awkward garbage... a step up from Angular though.
- minimaxir 10y ago[deleted]
- fnovd 10y agoThe numbers in the article and the numbers in your spreadsheet differ. The article contains analysis and categorization that your spreadsheet lacks. The data in your spreadsheet come from a public dataset, as I'm sure the data from the article do. Github stars are not a novel metric. I don't see why the author would need to cite you.
- minimaxir 10y agoHuh, the numbers do differ, sometimes by thousands, which doesn't make any sense at all, even if they are using internal metrics. The reason I was suspicious is that the methodology for determining GitHub stars by year is not trivial, and it is not described in the post, and other comments in this thread questioned it. I removed the OP.
- zeroxfe 10y agoCouldn't they have just generated this dataset themselves? Why do you think they used yours?
- deleted 10y ago[deleted]
- dehef 10y agoIt isn't a good indication for the framework value itself. A star in github its like "meh I heard a lot about react-thing, that look complicated but can't be that bad, I should take a look one day" Its a self-persuading buzz
- franciscop 10y agoI love that this made it to the report in the "React Boilerplates": https://github.com/tj/frontend-boilerplate https://github.com/tj/frontend-boilerplate > A boilerplate of things that mostly shouldn't exist.
- k__ 10y agoI never understood the boilerplate hype. My co worker used one four our app and it was horrible, it used Flummox and which was discontinued and we had to rewire everything for Redux later, since we didn't write the Flummox wiring in the first place, this was madness.
- shados 10y agoboilerplates are nice when you want to test out a quick Hello World while having access to a full toolchain. No one in their right mind would use that for production though (but unfortunately they do...so many people pushing huge, complex webpack configs that they don't need or understand)
- k__ 10y agototally. It let's you show something fast.
- mongmong 10y agoI used one of those boilerplates to complete a demo for a job interview!
- tabeth 10y agoSomewhat off-topic, though it may be relevant. Is it that much more difficult/complicated to have a server side rendered app with pure JavaScript sprinkled in versus SPA vs. no JavaScript? The situation I'm thinking about is the following: firstApp.domain.com secondApp.domain.com If you have an SPA then you literally can just have separate SPAs for each sub domain served statically. You could also have everything rendered server side using whatever back-end you're using. Finally, you can have server-side rendering and add JavaScript when necessary, but this seems to add complexity as your team would now need to know whatever templating language your server-side framework uses plus the front-end framework. Am I missing anything?
- pyrophane 10y ago> but this seems to add complexity as your team would now need to know whatever templating language your server-side framework uses plus the front-end framework. If you use server-rendered templates, the people responsible for your front-end will have to know a few things about the backend and vice-versa, because everything is a bit more integrated. Using an SPA allows your front-end guys to just say "we need an API that delivers this" and your backend guys can just publish a doc on that API. Neither team really has to know that much about how the other makes their part work, and both teams can create their own ideal environment without having it dirtied by the other team's needs or constraints. That being said, I wouldn't advocate for building an SPA purely for developer convenience.
- tabeth 10y agoDo you have any war stories to share? Given that ultimately producing value to the business is the only thing that matters, wouldn't doing it, if it conveniences them be the right thing to do? I'm not super knowledgeable about this (<2 years experience), but I see little downside. Of course, I don't know what I don't know.
- pyrophane 10y agoI think the choice to adopt an SPA or not should be driven primarily by the project requirements. Are you mostly going to be serving up long-form documents or presenting users with tradition forms, or are you building something that needs to feel more like an "app" that is highly responsive to user interaction. I would choose an SPA only if the latter were true. You essentially have two problems: 1) how to make common code available for reuse across what is essentially two separate websites/apps and 2) how to make it so that front-end focused developers and backend focused developers can work effectively together. I don't think that either problem is best solved by adopting an SPA if you would not otherwise be driven to do so. Problem 1 can be solved in a lot of ways. You can build a set of common services into a library used by both apps, for example. This allows you to isolate and reuse common functionality without the overhead of an HTTP service layer if you don't really need it. Problem 2 I would say winds up being more about both teams getting things "the way they want to do it" rather than strictly about difficulty learning. I've yet to see a server template system that would present much of a problem to a front-end focused person. The real problem is how can their toolchain, which may include things like transpilation, sass compilation, and a separate test runner, be integrated into the backend build process and framework. A lot of backend frameworks are somewhat opinionated about how these things happen, but there are ways to integrate just about anything with anything else. Anyway, it really just boils down to understanding how your app would be best served based on how it needs to work, and doing it that way. There is a good bit on the trade-offs between the two linked below [1], although its author is biased towards "shared" front-end/back-end frameworks like meteor, and I don't agree with some of the conclusions. [1] https://www.quora.com/What-are-the-tradeoffs-of-client-side-rendering-vs-server-side-rendering https://www.quora.com/What-are-the-tradeoffs-of-client-side-...
- paulddraper 10y ago#4 in TOC is React Boilerplates. Perhaps Javascript is catching up to its big brother.
- k__ 10y agoAt least FB tries to work against this with create-react-app
- fhoffa 10y agoSince they didn't publish their data source, let me add a useful note: How to count the number of stars using GitHub Archive and BigQuery. Naive query: #standardSQL SELECT repo.id, ANY_VALUE(repo.name) name, COUNT(*) as num_stars FROM `githubarchive.month.2016*` WHERE type = "WatchEvent" GROUP BY repo.id ORDER BY num_stars DESC LIMIT 1000 But let's fight "star fraud". There is an easy way to register "fake" stars - if you star and unstar a project repeatedly, each time this will register as a WatchEvent on the GitHub Archive log. Better query, removes duplicates: #standardSQL SELECT repo_id, ANY_VALUE(name) name, COUNT(*) as num_stars FROM ( SELECT repo.id repo_id, ANY_VALUE(repo.name) name, actor.id FROM `githubarchive.month.2016*` WHERE type = "WatchEvent" GROUP BY repo.id, actor.id ) GROUP BY repo_id ORDER BY num_stars DESC LIMIT 1000 If we put all together, these are the real results: * https://docs.google.com/spreadsheets/d/1aDlXrk3U1z5s0-1Is8KHOowJ_oSw79mzwAOPmK5LmeI/edit https://docs.google.com/spreadsheets/d/1aDlXrk3U1z5s0-1Is8KH... Projects like 'fivethirtyeight/data' lose -864 stars (23%), going down 230 places in the ranking, while projects like 'FormidableLabs/nodejs-dashboard' lose less than 1% of their stars, going up 49 places. When I said 'stars fraud' I'm not presuming malice, but with these star rankings we do create an incentive :). Disclaimer: I'm Felipe Hoffa, and I work for Google Cloud http://twitter.com/felipehoffa http://twitter.com/felipehoffa
- minimaxir 10y agoHuh, using ANY_VALUE as a dedupe is pretty clever. :)
- fhoffa 10y agoThanks! The full query joining both result sets gets more interesting: #standardSQL SELECT *, real_rank-rank diff_rank FROM ( SELECT a.id, a.name, a.num_stars, b.num_stars removing_dups, b.num_stars-a.num_stars diff, ROW_NUMBER() OVER(ORDER BY a.num_stars DESC) rank, ROW_NUMBER() OVER(ORDER BY b.num_stars DESC) real_rank FROM ( SELECT repo.id, STRING_AGG(DISTINCT repo.name) name, COUNT(*) as num_stars FROM `githubarchive.month.2016*` WHERE type = "WatchEvent" GROUP BY repo.id ORDER BY num_stars DESC LIMIT 1000 ) a JOIN ( SELECT repo_id, ANY_VALUE(name) name, COUNT(*) as num_stars FROM ( SELECT repo.id repo_id, ANY_VALUE(repo.name) name, actor.id FROM `githubarchive.month.2016*` WHERE type = "WatchEvent" GROUP BY repo.id, actor.id ) GROUP BY repo_id ORDER BY num_stars DESC LIMIT 1000 ) b ON a.id=b.repo_id ORDER BY num_stars DESC ) ORDER BY real_rank-rank Since some projects change their name, but not their id, I used STRING_AGG(DISTINCT repo.name) to get all of their different names throughout the year :).
- wyuenho 10y agoI'll probably get downvoted for this, but I think counting github stars probably only reflects visibility but not actual usage. To give you an example, cf-ui is counted as one of the "best" React UI component out there in bestof.js.org, but this project is not currently meant for general consumption. This fact is reflected in npm stats. I think we as a community should be very vary about these "scorecard" websites and their methodologies. These things tend to be a self-fulfilled prophecy. I'm not sure I want to see a couple of brand name companies start monopolizing our eyeballs and technical conversation. I'm also very vary about people making decisions based on these sites. While not everyone is completely different from others, I'd like people to make their own decisions based on their only thinking process rather than just jumping on the new and shiny from the big names all the time. Not that this appears to be an issue right now, just a few words of caution.
- karmelapple 10y agoAbsolutely. Just as a personal anecdote, I use GitHub stars precisely as a way to indicate my curiosity, and not at all for my usage. Repos I rely on get a bookmark in my browser. I would be happy to use a feature that lets me mark repos that are simply interesting to me separately from repos I have a stronger investment in.
- soneca 10y agoWhy did you believe your very reasonable comment would probably be downvoted???
- wyuenho 10y agoMy general pessimistic feeling for how human not learning from the past, but I'm glad I'm wrong now :P
- deleted 10y ago[deleted]
- yonasb 10y agoStars are useful to gauge interest. At StackShare, we rank most everything by number of stacks- meaning usage (https://stackshare.io/javascript-ui-libraries https://stackshare.io/javascript-ui-libraries). Worth noting that we just added GitHub stats to OSS pages (not our rankings), mostly because many new tools aren't actually being used in production yet, but there's a lot of interest in them.
- andrethegiant 10y agoSublime Text not on the list of notable IDEs?
- pfooti 10y agoIt's github stars, right? ST isn't open source, so it's not hosted on github. But it is notable. That said, where's vim?
- achairapart 10y agoI think the list is about IDEs built with JavaScript, ie Node.js/Electron.
- pfooti 10y agoah, that makes sense.
- cygned 10y agoInteresting that Angular 2 doesn't seem to be very popular - yet?
- pfooti 10y agoI think there's a difference between usage and github stars. I generally don't really star many Big projects like angular2 or react, since there's so much notification spam on it. I star smaller things which are likely to have less-frequent updates, but each update could well be a big deal (relative to the size of the project).
- ajmurmann 10y agoKeep in mind that this isn't absolute stars, but stars received last year. Many people who are happily using Angular might have already starred it earlier.
- asher_ 10y agoI was surprised also, the number of stars it has should put it into 3rd place, so I guess it had a bunch before 2016 started already, even though it only went out of beta in late 2016.
- k__ 10y agoThe React part is especially intersting, since Inferno, Preact and React share the React-API, which basically means React blew every other framework away.
- brlewis 10y agoMithril components are also in the same family. JSX works with Mithril out of the box.
- the_wheel 10y agoMeteor should be on the list of Node.js frameworks (absent a more appropriate category).
- Mizza 10y agoThis is awesome, somebody please make one for Python!
- lacker 10y agoHmm, Create React App is listed as "+5.6k stars", but it was launched in 2016 and has over 18,000 stars right now. Perhaps an error in the data processing?
- 49531 10y agoI noticed that too, not sure how they're figuring it.
- BinaryIdiot 10y agoLike fhoffa's example they may be attempting to account for star fraud (though that's a pretty huge amount if that's the reason for the difference).
- fhoffa 10y agoNumbers on the post are weird. 'facebookincubator/create-react-app' got 18187 stars in 2016 (17857 when removing duplicates). https://docs.google.com/spreadsheets/d/1aDlXrk3U1z5s0-1Is8KHOowJ_oSw79mzwAOPmK5LmeI/edit#gid=1674844484 https://docs.google.com/spreadsheets/d/1aDlXrk3U1z5s0-1Is8KH...
- ajmurmann 10y agoIt's only stars added in 2016.
- mxstbr 10y agoI've contacted the author, and he's changed the numbers to properly reflect the real stars. You're now on top! :+1:
- deleted 10y ago[deleted]
- anm89 10y agoReally Sad to me that Ember.js gets so little love. It is hands above Angular 1 or 2 in my mind and the only JS front end framework that I feel productive in.
- petercooper 10y agoI run a JavaScript focused Twitter account with 235K followers and on analyzing our 2016 stats this week, we found most of the Ember things we linked ended up in the bottom quarter of tweets ranked by engagement :-( I know Ember, know the (great) people involved, and try to promote it when I can, but for some reason my audiences aren't keen on it in large numbers. Yet whenever I do encounter an Ember user, they are always so full of praise, and ThoughtWorks gave it a strong recommendation recently too.
- ajmurmann 10y agoIt seems like user satisfaction for Ember is lagging behind anything but Angular 1 and Backbone. Presumably Angular 1 and Backbone don't get repeat customers because Angular 2 is out now and Backbone is pretty old. Source: http://stateofjs.com/2016/frontend/ http://stateofjs.com/2016/frontend/
- ArtDev 10y agoProbably because everyone knows what it is. No use to "star" it.
- urukhaifive 10y agoThis is anecdotal, but I believe this is due to the steep learning curve of ember.js. As someone who is just trying to pick up this framework, I feel like a complete outsider who is left to fumble around for months until it "clicks" and only then can I understand what is actually going on. I have been playing with it for the past 4 weeks, and I still feel more in the dark than I did after about a week of React JS/redux. The tutorial in the ember guides has you use mirage, a client-side mock-server, which is great for learning how to use ember.js in a vacuum. You are completely on your own in figuring out to serve it real data. Also, if you want to follow ember.js recommended conventions you need to learn how to serialize/deserialize your API into the JSON API specification. Something that is proving to be a pain in the ass when trying to work with rails strong parameters. It is causing me to relearn basic CRUD operations. Most of my time learning ember has been spent rummaging through GitHub issues for active model serializers or jsonapi resources. Everyone in the ember community swears by the "Data down, Actions Up" philosophy, and yet it isn't mentioned or explained anywhere in their documentation. As someone who is brand new to the community, how am I supposed to understand the proper way of doing things? Should I be creating actions in my routes, controllers, or components? Do I even need to use controllers since the apparent trend is moving toward components? Is ember-data capable of requesting data from the API based on the relationships I build within ember models? I was able to install a single gem, serve standard rails JSON, and I was up and running with reactjs/redux. Maybe I will be more productive in ember.js with the loveliness that is ember-cli, but learning ember.js is a much more expensive initial investment in my opinion.
- Raphmedia 10y agoHappy to see Aurelia in that list. It's my discovery of the year. I have a lot of fun with it!
- ArtDev 10y agoWho says that github "stars" are a quality indicator? I use stars to mark projects I am interesting in but haven't tried yet. I am sure many people do the same.
- silvaben 10y agoExcited to see Vue doing so well on this list. I have been using it for the last few months at my day job, and I have been pleasantly surprised by it. I have tinkered with React & Angular in the past and I can second that the fact that compared to the other frameworks, getting started with Vue is a lot easier. The ecosystem around it also quite mature - VueRouter & Vuex are well-tested solutions in case you have a use for it. Another advantage that it has is its documentation & guides. It is quite exhaustive and easy to follow. My only gripe was that it doesn't go into the details of building a complete "single-page-app" that uses the accompanying tools (vue-cli, vuerouter, vuex etc). Based on my learnings over the past few months, I have started writing a small ebook that goes over the process of building a full-fledged app. I have created a small subscription form - http://eepurl.com/cvUk5D http://eepurl.com/cvUk5D. You can add your email here to get notified when I launch this book and also get access to the early release.
- jaequery 10y agocheck out nuxt, it does exactly that. a full fledged vue cli starter. its eloquently made, just like vue.
- michaelrambeau 10y agoHello there, this is Michael Rambeau, the writer of JavaScript Rising Stars. Thank you, everyone, for your comments. It's very nice to see people talking about things related to my project. As some people mentioned, after the initial release, there was an issue about the count of stars, for some projects. I'm sorry about that, it has been fixed during the following releases. I will try to take into account the ideas discussed there, when things calm down. Thank you a lot!
- novaleaf 10y agoI don't understand why Hapi doesn't get much love these days. It's a monolithic framework, which means it's extremely opinionated in how things are done, but also it means you don't need to go hunt down 3rd party packages to cover features that every server dev needs out of the box.