J#
fuze writes: "It's basically a way for Java developers to migrate their Java apps to .NET.... even provide a 'convenient' migration tool... check it out on MSDN." News.com has a story describing Microsoft's plans to suck Java into .Net, and some commentary saying basically, "No one will use it".
The whole Java thing was more in Sun's interest than the developers from the start. In return for a somewhat better objective extension of C than C++ you wrote your code so it would run on Sun hardware as well as Intel and it would run at a tenth the speed on both. JIT compilers closed the gap somewhat but there is still a major performance penalty. A good C coder will write faster code than a good java coder.
The 100% pure stuff is ridiculous. If I am writing a program to run on Windows I want to make use of the extensive APIs. I want the program to look and feel like a windows program, and definitely not like a Java applet.
Sure platform independence is a good thing, but it should not be forced. Sun's little tantrum was about preventing people writing the programs they wanted to in 'their' language. So Microsoft have invented their own. I don't give a hoot about running on Solaris, Linux and NT are the only platforms I can be confident will be mainstream in 5 years time. Sun will go the way of the rest of the *nix hardware vendors in the end. (and blame their bad management on Gates to the end).
There is not a great deal of innovation in C#, but there wasn't much in Java either. The big step forward in both comes from junking bits of C that were really bad ideas.
There are a number of features of C# that make it much better to write programs for manipulating XML etc. than Java. If I did not anticipate ever wanting to port to another platform (and did not think C# for linux would arrive) I might use J#.
In the meantime J# means that you can still use Java to teach intro to programming.
Looking for an Information Security student project suggestion?
Try http://dotcrimeManifesto.com/