| Parenthesis for method invocations are optional, if the method does not take any arguments. obj.compute instead of obj.compute() That seems silly. The optional semicolons also irritate me. -----------------
(Added) I imagine a committee of Java developers, in a penthouse boardroom at Oracle, meeting with management to discuss Java's descent into disuse. "Lets make Java more concise," suggests a senior developer. "Yes! Lets get rid of the parenthesis like Ruby!" "And the semicolons like Javascript." All falls silent. Everyone stares at the programmer. "But... But..." stammers an important board member. "I thought we needed those." "We could make them optional." "Yeah, we'll be multi-paradimatic like Perl!" And so Extend was born. A cargo cult at its best. |
To quote Odersky: "This convention supports the uniform access principle which says that client code should not be affected by a decision to implement an attribute as a field or method."
It makes sense if you want to implement something that may be a field but needs to be computed.