wrote in message news:8d3aff06-82df-485f-89e5-a50c326aab05@googlegroups.com... Le mercredi 21 juin 2017 18:12:53 UTC+2, Dmitry A. Kazakov a écrit : >... >It could very well be argued that the C++ choice is a lot better. Well, in the sense that you can argue anything. Some people argue the earth is flat, too. >Most of the time, you never want to call a possibly dispatching method in >without dispatching. This seems to be a viewpoint that comes from taking OOP religious dogma as some sort of fact. A much more sensible statement is that "most of the time, you want to call the correct subprogram body for your object". A sensible programmer will never care how that is determined or which mechanism is used to implement that. And the fact that a statically bound call is faster than a dynamically bound call suggests the former ought to be used. >Ada gives you a little bit more flexibility, at the cost of being much more >error prone, >because it's easy to make a non dispatching call instead of a dispatching >one. Not >a good point for Ada ! Yeah, it's terrible that Ada avoids errors and ignores dogma. A more sensible take on this is that it is insane to put the burden of what can be called with a dispatching call onto a library designer. The vast majority of routines in Claw have no (obvious) good reason to be called as dispatching calls. But I don't want to claim to know how every user of Claw might want to use it, so if Ada had followed the C++ rule, every routine would have had to be marked virtual, effectively making everything more expensive. Library designers are not omnipitent! Randy.