Gili,
I agree with you in general. That /was/ exactely my point of view. However, I learned (from Wicket and other projects last year) that can be a good thing to actually limit yourself in order to come up with a tighter API. Just like poetry or music in a sense :)
Eelco
Gili wrote:
On Mon, 03 Jan 2005 09:35:26 -0800, Jonathan Locke wrote:
nope. final stops people from using extension points we haven't fully thought through. so it's the default for every class and method. in fact, this should have been the default in java.
Heh, C++ uses such mindset. The Java designers made an explicit decision in 1.0 to make the opposite the default and I happen to agree with them. Everything should be extensible by default and no problems should occur so long as you follow objected-oriented design -- that is, your extension must satisfy all contractual requirements of the superclass. Frankly, this would work better if Java had design by contract, but it does not yet.
From my discussions with the Java guys, the only reason final even exists (in the context of methods and classes) is for security reasons (and in the past for performance reasons). It was never meant as a mechanism for artificially controlling all future changes.
<my 2 cents> When I am designing my own frameworks, I let people make whatever extensions they wish and if they somehow run into problems because I forgot to expose some precondition/postcondition then I tighten my documentation. I think this mentality helps open-source projects where you don't want everyone double-checking with everyone else. Right now we're five people working together and double checking everything. In the future you might have some other project depending upon ours and extending it for their own use, or even five of them. We will simply not able to micromanage everything, nor should we try to. We still get to retain control over our own code, but we shouldn't try to control other people's code... </my 2 cents>
Gili
-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
Wicket-develop mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wicket-develop
------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ Wicket-develop mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/wicket-develop
