(March 14, 2015 at 3:04 pm)Moros Synackaon Wrote: As .NET is a framework, the comparison seems flawed. You could compare .NET to other Java frameworks, of which there are many.
Do you mean C# versus Java?
By the way, it's not usually referred to as JAVA in industry. Just Java.
C# has not yet been available for non-Windows platforms long enough to compare on terms of ubiquity. Due to that, even a better language design (C#) would not win the versus battle.
Agreed on all points.
In terms of frameworks, .NET is still primarily a Windows-only thing. Yes, there are implementations such as Mono that are cross-platform but they are incomplete. There are many cross-platform implementations of Java frameworks, and they are, with some quirks, largely write-once, run everywhere (I have noted some idiosyncrasies in writing file-handling applications where the underlying libraries work a little differently on NTFS vs ext4, amongst other things).
I have no real-world experience with C# - largely because I do not develop specifically for Windows, and I am not a fan of vendor lock-in. Java is, despite it's flaws, at least nominally open (I don't need to use Oracle's JDK/JVM if I don't want to).
Given that platform independence is critical to my work, I'm in the Java camp (Specifically Java + the Spring framework, running under Tomcat on Linux, with Oracle and mysql backends). Our dev workstations are Windows 7, and at least for webapps, portability is a non issue. I do have to do some extra work accounting for filesystem implemention differences when running under windows vs. Linux, but they're minor.
There's no way we'd ever use Windows on our production front ends, so C#/.NET is a non-starter - but that's far from universally true.