Dijkstra[]
https://www.reddit.com/r/compsci/comments/ajx7t/askcompsci_why_is_according_to_edsger_ dijkstra/ Dijkstra reddit discussion.
That depends. Sure run-time determined functions can be called, however the lack of operator overloading removes a layer of uncertainty. I dislike that when I use an operator on a couple objects and the behavior is hidden, particularly compiler defined behaviors. This can KILL performance. An example would be matrix addition. A simple addition of two 1500 x 1500 matrices will (in C++) have a hidden copy. This copy can have disastrous consequences on both memory and computational efficiency.
http://okmij.org/ftp/Computation/Subtyping/