Should You Use Classes in JavaScript?
Design Expression vs Dogma
The Ubiquity of OOP
Object Oriented Programming (OOP) is without question an important advancement in the design and development of software. In fact languages such as C++ and later Java were developed primarily around the OOP concept of a class
[1–2].
For years, Java was the most widely taught language in introductory computer science and was only recently surpassed by Python [3]. However, OOP and in particular class
es are nearly always taught regardless of the language— it’s rather that the multi-paradigm approach of Python can be used to simplify introductory concepts that can be implemented procedurally.
Thus, OOP is ubiquitous and often certain techniques or features such as class
are associated to the very foundations of computer science. However by making such a strong association, we may inadvertently produce a dogmatic environment. Indeed, to many programmers who start with Java, it can almost seem like class
and similar constructs are inherent to programming, when in fact they are not.
Such dogma is only avoided when we make clear why OOP was developed and what problems it solves. We have to remain cognizant that while it is useful in many cases, it is not a silver bullet [4].