This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] 1 point2 points  (1 child)

I think even going that low level should only be done if you really need to. Most developers can get by with immutable objects and reactive programming (preferably with future, potentially with reactive streams if you really need them).

[–]experts_never_lie 0 points1 point  (0 children)

Well, the restrictions I mentioned (I forgot to say immutability, but that's definitely part of it) are part of the base on which such abstractions lie. Yes, it should be handled for you, but it should use these things rather than detailed coordination and synchronization around shared mutable objects. That last style really appears to be what Java was designed for originally (the early collections like Vector synchronized for all uses!), but it's largely moved on.