Это не имеет ничего общего с функциональными языками.На самом деле это верно и для почти всех объектно-ориентированных языков.
Искусственное разбиение значений на два вида вещей только создает сложности, почему будет желать этого?
Вполне возможно создать эффективный код для арифметических операций над числовыми объектами.Фактически, большинство высокопроизводительных реализаций OO генерируют код, работающий с примитивными типами машинных номеров даже для «номеров объектов».Итак, если вы можете сгенерировать один и тот же машинный код для обоих случаев, но один из случаев проще, потому что у него нет этого искусственного разделения, тогда кажется очевидным, что дизайн лучше, не так ли?
Теперь, если вы хотите спросить меня, почему дизайнеры Java сделали именно этот выбор, я не могу вам сказать.Они, безусловно, должны были знать о работе команды Self, которая в конце концов работала в Sun.