Murkt> Ну вот я указал некоторые. BigInteger - это ведь не обёртка над стандартным типом. Decimal - то же самое (не уверен, как он в джаве называется). Могу вот ещё нелогичность указать - "первичного" типа string нет, но конкатенация String'а в Джаве работает, а конкатенация чего угодно другого не работает. А ведь было бы удобно использовать + для создания StringBuffer/StringBuilder. Списки те же - тоже конкатенция. А плюс не работает. Матрицы складывать, вычитать, умножать (я имею в виду математические матрицы, то есть специально созданные для этого классы). В тех же множествах - and, or, xor. В питоне есть ещё хороший оператор in. Я не настаиваю на абсолютной истине моего восприятия, но по-моему, почти все ваши примеры ложатся на "оберточный" образец. Кроме матриц. Но! Матрицы - довольно особый случай. Они не характерны для большинства приложений. И "стандартные" операции так-таки не очень хорошо ложатся для матриц. Если a и b - матрицы, то что такое a+b, a*b? Это зависит от реализации. Выгода здесь будет только если разработчик цельный день этими матрицами занимается и у него уже в памяти выжжены каленым железом "правильные" смыслы для этих операций. А если кто-то другой придет со стороны, или просто из другой части проекта, или сам человек написал два года назад и забыл? Вот так и рождаются кошмары. И это еще при более-менее разумном применении переопределения операторов. А уж когда начинаются всякие кошмары типа
Person p; Account accs[];
accs
+=time("Feb/1/00")-time("Jan/1/00");
имея в виду - записать человеку рабочее время за месяц - вот тут туши свет. А бывает и хуже.
Конечно, можно возразить, что надо просто правильное администрирование, правильное разделение полномочий, хороший дизайн и проч - да, в принципе, ценой увеличения затрат на дизайн и администрирование, наверное, можно получить какие-то плюсы. Но вот перевесит ли выгода от этих плюсов те самые затраты на дизайн/админинстрирование - совершенно, совершенно неизвестно.