I completely agree, as a language C# is more rounded, but as far as the ecosystem and tooling concerned its literally nowhere near to Java.
I completely agree, as a language C# is more rounded, but as far as the ecosystem and tooling concerned its literally nowhere near to Java.
I LOVE the language and I've found the entire ecosystem fine. There are some corner cases for some more advanced systems level stuff, but I've yet to be unable to do something I needed to.
Java feels like a clunky dinosaur to me now. But hey, different strokes for different folks.
Maybe I've just worked with too much enterprise-y Java code which always tends to be a cluster. Anytime the acronyms "SOA" or "ESB" enter the mix I start fearing for my sanity. But even Android programming seems to have more quirks than WinPhone development, although I'm comparing my experience w/ ICS 4.0 to WP 8.1 here.
What annoyed you about C#? I'm curious where you think the ecosystem or tooling is better than C#.
You are not helping anyone out here. Why does C# suck for you?
I find the tooling for C# projects using VS as a very nice feature set. Look at what VS supports today. Grunt, npm and bower are supported by VS out of the box. Also, nuget package manager has saved me many DLL hell problems that could have occurred without it. VS also supports many third-party extensions and tooling, which is what makes me thinks it is one of the best IDEs out there.
1. On the same machine, I find VS 2012 was dragging (but memory was always hovering around 400MB)
2. Couldn't stand for .csproj style solution files (may be I'm spoiled by pom.xml, but its way better)
3. We as a team working on the same project and merging those .csproj files are literally pain in the ass.
4. The windows layout in the IDE is quite un-intuitive. You should see how IntelliJ manages all those windows.
5. The disconnected namespace and folder structure is another pain.
6. Related to the point 5, looking the source code and namespace imports, I can't see from which file those Classes are being "imported".
7. Maintaining and adding references is PITA compared to Java projects that uses maven.
Again, as I clearly mentioned, C# as language is better, but the tooling and ecosystem are not.
Its not always about the better language, Software is mostly written once, but read, refactored, maintained thousands of times by dozens of people. So the tooling and ecosystem has its place, so as the backward compatibility.
this is an interesting claim
3. Did you try adding "*.csproj merge=union" to the gitattributes? I have never had a csproj merge conflict since adding that.
4. That really comes down to a preference. For me I feel the IntelliJ style keymap is better, but I would take the window layout of VS over WebStorm (just naming one i use often) any day of the week.
5. If your team decided to not have namespaces match the folder structure, thats their prerogative.
6. "Go to Declaration"?
7. NuGet has solved this problem for me.
But you're right, the C# ecosystem is certainly not perfect. Most people seem to agree that msbuild is frustrating to work with. And I really really wish csproj had wildcard support for including files.
I'd fully expect someone coming from a .NET ecosystem to have a similar reaction, and the truth lies somewhere in the middle: both of them have their things they excel at and things they are less good at, but a lot of it comes down to what you are used to.
Even though my gut reaction is sometimes similar to yours, I'd jump at the chance to do C# full-time, because I think there is some really nice stuff in the language and the platform seems really interesting once you get past the parts that feel unfamiliar.
[1] http://www.spenceruresk.com/2011/01/visual-studio-2010-a-bun...