> Existential types are pretty much the sane cousin of wildcards and necessary
> in some places.

Other than Java interop?  C# has a similar type system to Java and
doesn't seem to need them, but maybe its programmers replace them with
some runtime casting.

> I'm pretty much against removing implicits, they are one of the key features
> of the language. I wonder what the whole angst is all about. Java has
> implicit conversions, C# has implicit and explicit conversions and those two
> languages are still alive.

Java's implicit conversions are a fixed set, as you know.  C#'s do not
make methods available on the value, so if you have a conversion from
Dollar to Euro you can't do mySavingsInDollars.BailOut(greece); you
need ((Euro)mySavingsInDollars).BailOut(greece);, where BailOut only
exists on Euro, not on Dollar.  Or you can use a temporary variable as
in, Euro inEuros = mySavingsInDollars; and that triggers the implicit
conversion.  Trust me, the example I wrote and deleted before that one
was worse!

So C#'s conversions are slightly more straightforward and are not
appropriate for Scala's main use of them.  Luckily C# has extension
methods that cover that use case.  To be more exact, I would remove
the 'implicit search' where Scala's compiler looks for an appropriate
type to convert a value to to make a method applicable, but C#'s and
Java's implicit conversions are not, to me, an issue.

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

Reply via email to