Ask HN: What is the state of the art set of tools for front end Web developers?

20 points by apignotti ↗ HN
Libraries, Frameworks, Testing tools, Continuous Integration tools, Automation tools, Compilers, Debuggers, Profilers, Collaboration tools...

6 comments

[ 4.1 ms ] story [ 25.5 ms ] thread
I want to ask where ember.js stand at?
Still disappointing, would be my response to the original question.
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.

[1] : https://github.com/Matt-Esch/virtual-dom [2] : https://github.com/sebinsua/jstruct

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.