Ichinin wrote:
And C# produce runtime binaries, not bytecode JAR or WAR files, if performance is an issue C# > Java.
Nope, there is a specific section of a PE executable (aka .exe files) for .NET bytecode. C# is never compiled into native 386 code.
Incidentally, I would (and do) use C# almost exclusively for a web app because of ASP.NET MVC (or maybe ruby if I didn't have an employer footing the bill).
Quote:
This has always baffled me. C# is basically the same thing as Java, minus the portability. It adds absolutely nothing; the only difference is that programs made in C# are not cross-platform. Also, you have to pay for Visual Studio. Eclipse is free. So basically you're paying extra for less flexibility.
I have used both pretty extensively (Java for a few CS courses at Berkeley, C# for my web programming job) and would have to say, price and portability aside, that I prefer working with .NET. Here's why:
LINQ
anonymous methods
delegates (like a functor)
support for duck typing
support for tail call optimization
ability to pass variables by reference
no checked exceptions