Those who think that ES6 `class` is needed for “programming in the large” have a fundamental misunderstanding of what ES6 `class` is.
It does not add any “missing” features to JS. It simply supplies syntactic sugar for a pattern (antipattern?) that was already common in JS — and that sugar is less flexible than the underlying prototype system on which it’s built (hence the 75% occurance of “ugly” unreproducible refactor cases in the cited paper).
ES6 classes are less flexible and less expressive than prototypes, composition, and dynamic object extention, and ES6 `class` does not supply any form of “type safety” benefit, either.