On 16. vel. 2011., at 15:52, David Chisnall wrote: > > Yes, if the dot notation had been properly considered then it would have > enforced these additional requirements: > > - Accessor methods supplied for properties must not have side effects > - Accessor methods supplied for properties must always return the value > provided for the last set operation.
That would kill the whole point of having them as methods, don't you think? :) > - Only methods declared with @property may be called with the dot notation I think this is enforced on iOS. Not sure, though. From what I caught, that was the general intention on Cocoa, but they didn't want to patch every single old header and require patching of old libraries. > > If they had made these requirements, then the dot notation would have added > something of value to the language. At present, it is semantically > equivalent to a message send and may be used interchangeably with a message > send. Since it is semantically equivalent, it does not provide any more > information to the reader or to the compiler, it just does something that > looks like a field access (which is one of the fastest operations in C) and > actually makes it into a message send or two (which are an order of magnitude > slower), making it hard to reason about the behaviour of the code. Agreed, they should have provided at least the options to note that you will explicitly not customize the method. >> >> I really think that this is a minor issue and that extra brackets in such >> short statements do not contribute to readability of code. Most often, one >> will not write code that will depend on atomicity of the operation. I don't >> write multithreading code because I don't want to worry about atomicity, >> locking, race conditions, et cetera. > > Then I hope you never have to write any code that is CPU dependent, since > current trends are towards lots of slower cores. I hope the same; despite being primarily into games, I haven't ran into problems where I had to optimize on that level. After all, most complexity is in drawing and optimizing drawing, and sadly, OpenGL contexts cannot be accessed from different threads on most platforms. > >> But whenever I use dot-syntax, I am very conscious of what I'm doing; I am >> conscious that I am making a method call (or two!) and it's not an issue. >> And, after all, large majority of my properties are synthesized. What harm >> in using that? > > You are thinking about yourself, not about the people reading your code. > This is the fastest path to unmaintainable code that I have encountered. I > can point to places in GNUstep and other projects where people have had the > same philosophy. These people have subsequently moved on to other projects, > and no one wants to touch the code. Good point. I will reconsider my position. -- Regards, Ivan Vučica [email protected] - http://ivan.vucica.net/
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ Discuss-gnustep mailing list [email protected] http://lists.gnu.org/mailman/listinfo/discuss-gnustep
