i meant: aren't they objects in java too?
Yes, but the reason I mentioned them is that they are all mapping-like data containers. In Java, C++ and many more you can choose which mapping implementation you want. In Pike you can't (unless you're prepared to take the cost of emulating a mapping with an object, of course).
a pure object pike would indeed be nice :-) but wouldn't that cost optimization?
Maybe, maybe not. It's hard to say. It's mostly a matter of doing the same things but in different places: Instead of having a big global predef::`+ which knows how to add all these types in various combinations, it'd instead be the job of each type to know how to get itself added.