Hacker News new | ask | show | jobs
by loginatnine 452 days ago
Unless the object is immutable, like String, Integer, Long, ImmutableCollections, etc. Or your own immutable objects.
1 comments

> Unless the object is immutable, like String, Integer, Long, ImmutableCollections, etc. Or your own immutable objects.

Exactly. You can have immutable primitives. You can have immutable classes. And you can combine them to form thread-safe immutable classes.

Now you're restricting yourself to a subset of the language. There's nothing stopping someone from adding a mutable member to your "immutable" type later.

It's much better to have immutable bindings/references so that nothing that mutates the object can be done through them. Rust does it very well, for example. Even C++ has a good version of this.

> It's much better to have immutable bindings/references so that nothing that mutates the object can be done through them. Rust does it very well, for example. Even C++ has a good version of this.

Yes, that might be superior but even Java is doing better than Go here.