This question already has an answer here:
I'm working in a java role after working a couple years in functional programming. Our company was bought by google and I took a java role after the acquisition.
Coming back to java as a polyglot developer, I'm generating getters for immutable objects and I'm seeing it's a total hogwash.
Are there any reasons why the 'getField' convention should be used so prolifically? To me it seems almost horrifying at this point that so many libraries expect public getter methods to work with their functionality when simply making a field public and final would have the same effect as making only a getter on a public mutable field.
Why isn't it more of a common practice to ditch the setters and just expose a final field?
EDIT: I don't think this is actually the right forum as I think this is a discussion point rather than an answer after evaluating the perspectives.