I am interested in hearing opinions and experiences of fellow developers on topic of designing user interface, usability AND maintainability-wise.
Common approach is to allow users to tweak options and after form gets "dirty", enable "Apply" button, and user has possibility to back out by pressing cancel. This is most common approach on Windows platform (I believe MS usability guidelines say to do so as well).
Another way is to apply changes after every single change has been made to options. Example, user checks some checkbox, and change is applied. User changes value of some text box, and change is applied after box looses focus, etc. You get the point. This approach is most common on Mac OSX.
Regardless of my personal opinion (which is that Apple is better at usability, but software I usually write targets Windows users), what do you people think?