Note by Reinout beforehand: the company I work for (DutH sponsor Nelen&Schuurmans) has a job opening for a front-end engineer. If you speak Dutch and are interested, give us a ping.
So you have the browser world and the node world. Packaging for the browser is by hand or with bower and so. Packaging for node is done with “npm”.
ES6 can be used safely, all modern browser support almost everything. It is not bleeding edge.
var math = require('lib/math'). Now you can use
import math from 'lib/math'.
classkeyword that works like you expect it to.
this. Where python’s
thiscan mean various things in various places based on who asks for it. The new ES6
=>syntax helps here.
So... the core language is now nicer. What also improved: the tooling. Every week the tools you should use change. Best practice from 4 months ago is ridiculed as out-of-date today. It is a cambrian explosion.
The upside: lots of nice experiments are done. Lots of nice stuff comes out of those experiments.
And... you don’t need to use the latest library just because it is mentioned on hackernews!
And you don’t need to update your npm packages every day. He updates it once per month on a specific “npm update day”. It does also take a day, btw.
A problem: hypermodularity. On the other hand: it takes unix’ “a tool should do only one thing” to its logical extreme.
Everybody applauded when Idan named and thanked Donald Stufft for his work on python’s packaging infrastructure that works very nice.
Look at yarn. If you see NPM as “easy_install”, yarn is “pip”.
Also use ESlint to check your code and warn about formatting problems. You can also use “StandardJS”. So set it up in your editor and on your testing machine.
If you want something like ipython/jupyter: look at https://runkit.com/home
React tastes like Django. And it has the clearest mental model of all the front end frameworks.
Ember tastes like Rails. He likes it less. There is a lot of convention instead of configuration.
Angular: he hasn’t done any work with it. There are two versions, angular and angular2. They are completely different animals. Completely incompatible.
There are lots and lots more.
Modularity invites a wealth of tooling, but you don’t want to run separate tools all the time to package it all up. So tools like “grunt” and “gulp” came along.
My name is Reinout van Rees and I work a lot with Python (programming language) and Django (website framework). I live in The Netherlands and I'm happily married to Annie van Rees-Kooiman.
Most of my website content is in my weblog. You can keep up to date by subscribing to the automatic feeds (for instance with Google reader):