> > > Quoth Godmar Back on Fri, 25 June: > : > : Why do people believe that MS's extensions are worse than Sun's > : definition of Java? > > There is a very good explanation of why the specific extensions > at issue are a bad idea technically, referenced by URL in previous > mail in this thread. > I too have read that page, and it does not justify why the extensions are bad. Too me, the page reads like this (at least as far as delegates are concerned, I do not know about J/Direct---don't even know what it is): - There's a problem. - Here's how Microsoft solved it (delegates) - This is not how we defined Java. - Let's come up with a Java solution (anonymous inner classes) - The solution isn't ideal either: access attributes must be package accessible to avoid VM changes, lack of closures and activation record garbage collection means we can only allow final variables to be passed in inner objects, and most importantly, inner classes are expensive when implemented naively. - Currently, they're implemented naively. At some point, we'll be able to optimize inner classes. - Until then, stick with us. While I personally believe that anonymous inner classes are elegant to use (I use them myself alot), when I put my VM developer hat on I realize how expensive they can be. From this perspective, I believe that MS's solution to the problem is certainly within the spectrum of what I would consider acceptable engineering compromise, and therefore that the issue at stake is purely political. > The broader issue of why any and all MS extensions are worse is a > political issue. The extensions are designed with the express > intention of preventing Java code from being portable across operating > systems. While it is true that this is Microsoft's strategy in many cases, this is obviously not the case here. This is not to say that this isn't Microsoft's intention here, but consider that Java code using their extensions would still be portable if Transvirtual did put it in kaffe. This is so because Kaffe itself is portable and in fact already running on many architectures/system, on some of which it's the only VM that is available. - Godmar