Multiplication and division aren't necessary for arithmetic, why not keep things simple and just use addition for everything? Because by using a more complex language, it actually simplifies many solutions to problems. I do not understand why many software developers seem unable to grasp this.
I think it's saying languages that make polymorphism an inescapable, top-level concern (everything's an Object, Class, Interface, etc), and/or force all polymorphism be done through a limited choice of polymorphism tools it provides, is incidental complexity. Polymorphism a la carte lets you pick your poison from a full platter, or ignore it all together.