Any Turing-complete system is spaghetti in the hands of bad programmers. And simple & clear in the hands of good ones who know how to design.
The $180k figure is also inflated. Most folks being laid off don't make over $100k.
Considering the current political climate and rampant government cuts to important services, I very much doubt “everyone agrees” and that this is the best time to be planning such an important transition.
It's still useful to point out the differences like the article does. Because it isn't as if the transition between the various JavaScript environments is seamless.
Edit: upon rereading I realize your point was about reading code, not writing it, so I guess that could be a different use case...
Also, what I think is also important to differentiate between: dependency injection, and programming against interfaces.
Interfaces are good, and there was a while where infant DI and mocking frameworks didn't work without them, so that folks created an interface for every class and only ever used the interface in the dependent classes. But the need for interfaces has been heavily misunderstood and overstated. Most dependencies can just be classes, and that means you can in fact click right into the implementation, not because the IDE understands DI, but because it understands the language (Java).
Don't hate DI for the gotten-out-of-control "programming against interfaces".