I'll reply here now, but if anyone suggests taking it off-list after
this message that's fine by me.

On Wed, Nov 23, 2011 at 8:05 PM, Kevin Wright <kev.lee.wri...@gmail.com> wrote:
> For example:
> someBitSet map {_.toString}
> is only able to return a Set[String] thanks to an mechanism based on
> implicits

That's implicit parameters as far as I know, whereas I was talking
about removing implicit conversions.

> I used a self-type only today!  They just make some things so much easier...
> Especially when coupled with structural typing, self types really do make
> some problems a great deal more approachable.

They seem to be used for avoiding making a type generic.

> Existential types.  Wildcards were a mistake in Java, they don't
> really need to be copied over.  There are reasons for not having 100%
> compatibility, and sanity is one of them.
> They're also, sadly, a necessary evil for dealing with certain Java
> libraries.  If Scala were to remove features that enable interop, then
> existential types most definitely would not be the first on my list!

One could write a bit of Java code that exposes a wildcard-less
version of a class to Scala.  Not the ideal perhaps, but in the
interests of simplicity it might be for the best.

> As it
> is, interop was a core design choice of Scala, so existentials really can't
> be removed.

The interop is great from Java to Scala but terrible the other way
around.  object X { val x = 5 } generates a class file named X$, for
instance.  There are reasons but they are based on engineering choices
that could reasonably have gone the other way.

-- 
You received this message because you are subscribed to the Google Groups "The 
Java Posse" group.
To post to this group, send email to javaposse@googlegroups.com.
To unsubscribe from this group, send email to 
javaposse+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/javaposse?hl=en.

Reply via email to