В том то и дело что нет. Эти детали определяют контракты самого ЯП.



Думаешь почему в Java Double не типобезопасный тип, а Object - типобезопасный?



Ровно по причине, что объект всегда спрятан за указателем, размер которого соответствует битности системы. А Double всегда занимает 64 бита и на 32-битных системах это просто нельзя сделать атомарно без блокировок.



Или, другой пример. Я не могу передать null в Java там, где ожидается, например число.



Почему? Да потому что null - это объект и также является указателем. А число будет занимать размер согласно своему типу.



И так в каждом ЯП! Эти нюансы определяют дизайн.



И в Rust нет понятия объекта. Не потому что "какая то философия", а потому что реально нет такого типа, как и связанных с ним контрактов.



Но есть многие черты ОО языка. И получается, что "физически" объектов нет, но многие черты - есть.



Поэтому я и отнес его к ПостООП.



В Julia/Go тоже нет объектов, и эти языки сильно отличаются друг от друга, но там также есть черты от ООП.



Именно это я и разбираю.