For the most part the wording used in this paragraph in unfair and unsubstantiated. The author of this rant in both uninformed and unhelpful. Several design choices have been made over the years and some of those requires awareness of the documentation and usage rules in order to properly write some of the interfaces. As in any software development there have been deficiencies in the existing code base, and most if not all are being addressed as soon as they are brought to our attention. As C++ is evolving (for example ROOT was started before C++ template or STL containers were in a useable form), we continually improve and update the code base while focussing primary on the actual need of our users.