I've got a preliminary offer to go a 140-day state-funded employment training in either platform. The training programmes are almost identical. First 40 days of .NET or Java. Then 20 days of SQL, application development & testing. Then 20 days of either .NET C# MVC or Java Enterprise.
Last of all is 60 days of internship at some company.
What can I expect programming-wise? Are both platforms "multi-tools". Or is one platform more geared for specific uses than the other. (Barring the question that .NET only runs on Windows.)
.net makes web development incredibly easy (vs php, I've never used Java enterprise), it's limited cross platform support is obviously terrible though there are ways to use c# on linux. In terms of functionality Java has very similar syntax but is a few years behind, I'd recommend c# due to visual studio and .net being very powerful and feature rich but at the end of the day its better to go with whichever you'll prefer. Maybe mess around with both to get a feel.
.NET is mainly used in Windows environments, learn it if you want to work in a windows shop.
Java is mainly used in companies with mixed environments, learn it if you want to work in those companies.
Server-side either is fine. C# is the slightly nicer language, Java has a much better open source ecosystem and is cross-platform ( MS has started open sourcing and porting .NET to linux but it remains to be seen whether it will work as well as on Windows ).
If you want to write games or windows desktop applications, .NET is the way to go. For mobile, Java as mobile Windows has minimal adoption.
Java if you plan on working on Android apps in the near-future.
.Net if you plan on working on business apps in the near-future.
Both are shiterprise tier and very similar, if you learn one, learning the other is just an afternoon of reading.
Most of the "relevant" corporate high-paying shit it's done with either Java or C# with a .NET clusterfuck added.
Programming wise expect absolutely fucking nothing, you will not become a better programmer through those shitty languages, mostly because the implementations require little technical prowess.
You'll get paid like a real professional though.
>If you want to write games or windows desktop applications, .NET is the way to go. For mobile, Java as mobile Windows has minimal adoption.
Funny, I'm considering to toy around with Unreal SDK. "But" the scripting language is C++. I'm also considering developing for iOS.
So how is .NET good for game developing?
>Java is definitely the way to go for enterprise level never-get-fired jobs.
.NET (well C#) is nicer than Java in some ways but the .NET Framework can be worse than the Java standard libraries in other ways. It is a bit hit and miss with both to be honest. Really it depends on exactly which bits you are using of the languages, frameworks, etc.
I live in London and in general Java jobs pay better than .NET jobs. The number of jobs is pretty much the same (loads) between them.
My biggest complaint about .net is how damned integrated the compiler is into the runtime.
In java, if you can produce VM code, any runtime will take it. In .net, if your compiler doesn't match what the runtime expects, you might as well give up on some of the more advanced reflection uses like especially for web work.
Um, no? There's been cross platform .NET implementations for years now, and Microsoft released a shit ton of source code recently massively increasing cross platform .NET implementation development.
I know a couple of enterprises that tried .NET but went back to Java. This was 5 or so years ago and performance with .NET wasn't anywhere near as good as it was in Java. Also the cost of needing Windows Server OS was another factor. Sure a few servers doesn't really matter but when you start looking at 200+ server licenses even enterprises (with smaller departments picking up the cost) they start to get picky and "if Google can use Linux then we can!" attitude (not that it is a bad thing)
>performance with .NET wasn't anywhere near as good as it was in Java.
I think in many ways .NET isn't as well designed as java, despite being significantly newer. Also, direct algorithm to algorithm comparison of .NET to java has always favored .NET, even from the beginning. Java was designed so its bytecode could be emulated anywhere. .NET was designed so its bytecode could be almost directly translated to x86asm. They did this to best java performance wise. When it is slower compared to java, it's shitty design in the base classes and default frameworks.
Asp.net is all the wonders of c# combined with all the horrors of iis and Microsoft-specific html generation.
Be ready to love convention when writing server pages.
As for webapi, its literally Microsoft-specific jaxrs. Even the syntax and configuration techniques are similar.