Hi Erik,
By the very same logic we should also remove the '_' prefix from member variables as well and make them look the same as local variables, no? Hungarian notation does have its uses.
You say that it is redundant to have 'I' when you already have declared the type as an 'interface'. The problem is that 'interface' is declared in another file. Having to load/understand that other file in addition to what you are doing at the moment is problematic.
In a company that can standardise on an IDE (or a set of IDEs) it probably makes sense to relax rules like that a little bit as the IDEs can compensate. I strongly disagree that this can be done in an open-source project when there is a good alternative however. At the very least that places a limitation on the people who join and the tools they employ.
I agree that the matter is more or less closed, as Howard has already decided to remove the 'I's from Tapestry and given that he writes the majority of the code, his opinion does matter a lot. I should have spoken out when there was a vote on that in tapestry-dev (was there one actually?). Nevertheless, what I am saying may be of consideration in the future.
Erik Hatcher wrote:
On Apr 22, 2005, at 5:53 AM, Mind Bridge wrote:
Hi,
Do you have to 'implement' or 'extend' a particular type? Can you have multiple inheritance with that type or not? Can you instantiate it?
The answers of those questions are clear with 'IPage'. If 'Page' can be both a class or an interface, you have to look through the code to find that out.
Interfaces and classes are two rather different concepts. It seems to me that they need to be distinguished clearly. Removing the 'I' in front of the name and the characters that saves are a much smaller win compared to the loss of clarity and the time wasted in figuring out what can be done with that type.
I disagree. Putting an "I" in front of something that is declared as an "interface" already is redundant. My IDEs (I juggle between Eclipse and IDEA) both easily show me what kind of beast a particular reference is if I want to know. In most cases its irrelevant whether you're dealing with one or the other. Tapestry is the exception here - no other API I work with uses this old-school Hungarian notation.
It's not really worth dwelling on, though. Howard has already agreed that moving forward the I-prefix will be dropped for new code. The question now is what to do about the existing interfaces. Putting a cleaner name in interface hierarchy (RequestCycle extends IRequestCycle, or vice versa) and deprecating the I-prefixed stuff seems to make sense. This will be ugly though - as method signatures using those interfaces will need to be duplicated with the old one deprecated - right?
Erik
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
-- No virus found in this outgoing message. Checked by AVG Anti-Virus. Version: 7.0.308 / Virus Database: 266.10.2 - Release Date: 4/21/2005
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
