In his blog Alex Miller
adds more commentary on the growing debate on the new proposed Properties syntax for Java 7. Alex used Stuart Halloway's notion of hygienic syntax to help him sort out his position in the great language debate.
hygienic macros in Scheme [snip] basically mean macros that when expanded can’t break the meaning of the code they are used in.
Simply stated, non-hygienic syntax is one that dictates that any changes made will necessarily break the client’s implementation. Alex uses Object construction in his first example. In that example he demonstrates how a useful specialization can break clients code. The fix is to the factory pattern an interfaces. In his second example he turns to something more akin to the topic at hand, field access.
It is in his discussion of field access that Alex starts to lean towards the position that the new properties syntax isn't hygienic.
when you switch from using a field to a setter method, all calling code breaks and must be changed. Again, this is a non-hygienic syntax.
As Alex points out, all IDE’s generate the boilerplate code needed for get/set methods. The question is; if an IDE can encode this behavior so easily, is it not time to roll those changes up into the syntax/compiler? The debate continues.