>> 2/ If you read a structure, set more fields, and write it, you would >> have to remember to set isset to true. > I see what you are saying here. Again, though, this only bites you if > you are using code that doesn't manage the __isset for you. Maybe I'm > biased because I used java:beans and Ruby, both of which aren't > affected by __isset issues like this one. Which other libraries are? > For the ones that are, can they use getter/setter or property > functions to simulate the same use pattern but still maintain the > __isset properly? C++ is the big one. I'm opposed to using getters and setters in C++ because it leads to an unnatural coding style and possible performance penalties. I feel basically the same way about non-beans Java. I'm not really sure about C#, Erlang, Smalltalk, etc. isset doesn't exist in PHP, or Python because it is unnecessary (all fields are nullable), so optional is meaningless for them.
--David