I'm just a Java developer (I have never found the time to explore C#), but many experienced developers that I work with looked at C# recently and think highly of it, and most believe that it is ahead of Java. Is Java 5 going to do anything to change their minds?
C# is very similar to Java (current version) but more powerful in my opinion. C# was actually borrowing 70% stuff from Java, 20% from C/C++ and 10% from VB5. C# is brilliant because it stands on the shoulders of the giants. I also took look at the new features for Java 5. I believe it will also brilliant too.
Some of the 5.0 features are very similar to things already existing in C#, including the enhanced for loop, autoboxing, and annotations. For an interesting (and biased) take on how the generics implementation compares, see http://www.artima.com/intv/generics.html.
Thanks a lot for the great article... It is wonderful that one of the interviewers is the author of "Thinking in Java"?
Great conversation between the great C# architect and the famous Java book author...
I found the following is interesting for me...
Java's generics implementation was based on a project originally called Pizza, which was done by Martin Odersky and others. Pizza was renamed GJ, then it turned into a JSR and ended up being adopted into the Java language. And this particular generics proposal had as a key design goal that it could run on an unmodified VM [Virtual Machine]. It is, of course, great that you don't have to modify your VM, but it also brings about a whole bunch of odd limitations. The limitations are not necessarily directly apparent, but you very quickly go, "Hmm, that's strange."
Co-author of SCMAD Exam Guide, Author of JMADPlus SCJP1.2, CCNA, SCWCD1.4, SCBCD1.3, SCMAD1.0, SCJA1.0, SCJP6.0