Ember is IMO second best at everything, which is pretty good for a fully integrated stack. If you don't have a very good idea of what you want to use for all the pieces of your app, you're working with a group of less experienced frontend developers, or you're on a project that's going to be maintained for a number of years by someone else, Ember is probably the best choice. Their project stewardship has been commendable.
A compilation of things I consider state of the art in the world of Front End.
Libraries : There are infinite number of libraries so - its kind of hard to mention any single one. But VirtualDom[1] is a great one. Also jstruct[2] seems like a good one.
Frameworks : React, Angular 2, Ember - Perhaps even Mercury or other VirtualDom based frameworks.
Testing Tools : Jest. A few other property testing tools as well.
Continuous Integration : ??
Automation Tools : Protractor ?
Compilers : Hmmmm. Babel obviously. Also consider Spiderlang, Clojurescript and Typescript.
Debuggers : Remote Debugging Protocol. Note that this is not itself a debugger but an enabler.
Profilers : Chrome and Edge Profilers.
Collaboration Tools : Not sure what you mean by this.
Current stack at work for me is Clojurescript / Reagent / Boot.
In JS land, I'm in the React camp. React's model is the biggest step forward on the frontend since jQuery. I stick with React over faster/smaller alternatives (virtual-dom) because the community size network effects mean there's stuff I want to use that I didn't have to write (e.g. React Router). I'm not a fan of any Flux library I've run into (and I've checked a dozen) so I'll be porting my cljs setup whenever I have to switch back. I'm in the functional JS camp so Immutable.js, Ramda, and js-csp for libraries and I run mocha+chai for testing. Keep an eye out for Netflix's Falcor and Facebook's Relay, which are vaporware at the moment but most likely disruptive.
I favor Webpack over the js task runners. It's always mostly done what I wanted and extending it is fairly straightforward. I find the configuration setup somewhat arcane but I've done enough variations that I have a working version of what I want to do somewhere on my hard drive to copy/paste.
Compiler is babel. The dev tools in most browsers are comparable, I'm still mostly on the Chrome ones out of familiarity.
6 comments
[ 4.1 ms ] story [ 25.5 ms ] threadLibraries : There are infinite number of libraries so - its kind of hard to mention any single one. But VirtualDom[1] is a great one. Also jstruct[2] seems like a good one.
Frameworks : React, Angular 2, Ember - Perhaps even Mercury or other VirtualDom based frameworks.
Testing Tools : Jest. A few other property testing tools as well.
Continuous Integration : ??
Automation Tools : Protractor ?
Compilers : Hmmmm. Babel obviously. Also consider Spiderlang, Clojurescript and Typescript.
Debuggers : Remote Debugging Protocol. Note that this is not itself a debugger but an enabler.
Profilers : Chrome and Edge Profilers.
Collaboration Tools : Not sure what you mean by this.
[1] : https://github.com/Matt-Esch/virtual-dom [2] : https://github.com/sebinsua/jstruct
In JS land, I'm in the React camp. React's model is the biggest step forward on the frontend since jQuery. I stick with React over faster/smaller alternatives (virtual-dom) because the community size network effects mean there's stuff I want to use that I didn't have to write (e.g. React Router). I'm not a fan of any Flux library I've run into (and I've checked a dozen) so I'll be porting my cljs setup whenever I have to switch back. I'm in the functional JS camp so Immutable.js, Ramda, and js-csp for libraries and I run mocha+chai for testing. Keep an eye out for Netflix's Falcor and Facebook's Relay, which are vaporware at the moment but most likely disruptive.
I favor Webpack over the js task runners. It's always mostly done what I wanted and extending it is fairly straightforward. I find the configuration setup somewhat arcane but I've done enough variations that I have a working version of what I want to do somewhere on my hard drive to copy/paste.
Compiler is babel. The dev tools in most browsers are comparable, I'm still mostly on the Chrome ones out of familiarity.