James Watson
Posts: 2024
Nickname: watson
Registered: Sep, 2005
|
|
Re: Seeking the Joy in Java
|
Posted: Aug 24, 2006 8:48 AM
|
|
> Good points. But what are the alternatives? I can think of > three: > > 1. Forget about each in collections. > 2. Start from scratch, and forget about code that creates > old-style collections. > 3. Require that users write lots of wrapper code that > transforms old style into new style collections. > > I think (1.) is giving up, and (2.) is impractical. > Remains (3.), creating wrappers. That's what's often done > in practice, but it's very cumbersome. It gives you the > kind of verbosity that often hides rather than clarifies > meaning. So one way to regard implicits is that they are > automatically generated wrappers.
I like this idea of implicits and I am warming up to them more and more. They seem to also allow a 'bolt-on' approach to OO. For example, I'm a big proponent of mimimalist interfaces in Java because they are much easier to implement (which is why we should be creating interfaces: so people can implement them) but the obvious trade-off is that they may take more effort to use.
The implicit feature (I think) solves this. It allows me to create my minimalist interface and provide bolt-ons for the convienience features. Even better, (I think) it allows anyone to provide sets of convienience methods for specific needs without procedural style helper classes.
> With the right tool support, this could be practical also > for inexperenced users. For instance, we could have a mode > in the IDE which shows automatically generated implicits > in the source. That would remove the voodoo and put > implicits on the same level as, say, refactorings. I'll > see whether we can that build the Scala Eclipse plugin.
When you say 'automatically generated' you mean the additions to a class provided by the implicit wrapper, right? Implicit objects are not being created automatically or anything are they?
> > The other thing I think you can address right now it > the > > documentation. One of the things I found really > > frustrating was that the Ord class described in the > > tutorial does not exist. > > The tutorial was out of date with the API in that respect. > Thanks for pointing this out!
I also seem to recall that the variance specified in the API was not what was actually in the definition of Ordered but this could be a misunderstanding on my part.
I guess the real issue with implicits isn't the feature but making the value well known and understood. I don't think keeping features from people that we don't trust is a good solution.
|
|