What do you mean you couldn't figure out how to achieve code coverage with Mocha? You have to run Istanbul on top of it and you're done:
https://istanbul.js.org/docs/tutorials/mocha/
For me, the real new concept of Jest is snapshot testing. It's handy but also quite jarring as it transforms all the tests in a string comparison, so the test logic is moved into the serializers.
Also Jest's watcher is quite nice.
Stopped reading at this:
> for (let index in allImgs)
After all it looks like an article that mixes old and well know hacks (like short circuiting) with new ES6 syntax tricks.
But some completely miss the point: if we do the "longhand" version, maybe there's a reason. That's why I stopped declaring n variables all in one var statement, for example.
I would be more than happy to admit those cases have been as successful as jQuery, but in reality I could separately discuss about each of them and why they don't quite fit the case. But since this is Echo JS let's limit about JS stuff.
Backbone has never got nearly to be a "major" library, nothing like jQuery, or Angular, or React. It had some traction back in 2012 or something, but has never been a global success, Ashkenas notwithstanding (his work with CoffeeScript and Underscore didn't go unnoticed - speaking of which, you could've mentioned Underscore indeed).
Node.js struggled at first. A lot. It was more of a curiosity than a real contender of classic LAMP stacks. Even now, a lot of "heavy" core business logic is done in Java or C#, while Node isn't even considered for the task. Because for those languages there are a lot of libraries and frameworks that got the contribution of behemoths like Sun, Oracle, IBM, Microsoft, Google... "Serious" companies that anyway granted serious commitments to the ecosystem.
It hasn't really happened for Node, not yet, even though such companies are investing quite a bit in it now. But it happened thanks to the major reorganization that happened in the community after the io.js schism, which eventually led to a solid board with a consistent governance, LTS versions, update plans, roadmaps and so on. Now this is something that "serious" companies could rely on. But it's still quite novel, and in fact Node hasn't really replaced LAMP stacks yet... only in those parts that are somewhat considered "replaceable".
And express... is in that position because it has no real contenders, really. Alternatives like Hapi, Koa... aren't really different and they're not backed by big companies either. And unless something completely new comes into the field, this isn't going to change, because... express is now an IBM thing, since Big Blue aquired StrongLoop a while ago.
Meanwhile, frameworks from big companies continue to blow away competition. Like Bootstrap dwarves Foundation, or like Jest is quickly demolishing the lead of the classic Mocha-Chai-Sinon stack for testing.
The morale is always the same: if you want your project to survive against similar from big companies, you need a *really solid* community around it first.
IMO, one of the main reasons companies are reluctant to use Vue is because there's just one man behind it, Evan You. And that's not actually correct as there's an ever-growing community around it, but the concept is that's opposed to React and Angular which are backed by giants.
Having something like Facebook and Google means support and commitment, and that's what companies often look for. Companies that don't understand that it's 2017, I mean.
But who knows, Vue can still be king. We have a remarkable champion of this phenomenon: jQuery. It wasn't just John Resig, it was a huge community that grew over time and made it a tool prime for business applications.
But then again, its main contenders (like Prototype, Ext, ...) were dwarves in comparison to Facebook. I still don't know where this will be going, but in my heart I hope there will always be space for ideas from just one brilliant mind.
TypeScript is meant to be an extension of JavaScript. If it implements one of JavaScrpt's features in yet another way, I think it could be a stretch.
Then again, they *could* compile both syntaxes while deprecating the legacy one, I guess. But that would require a new major version (although TS does *not* follow semver).
No mention of the proposed #private properties, hm.
Why should they mention them, though? They're still at stage 2, there's still time to reject them.
But if they'll get to 4, I think it will be time for TypeScript 3.