3 ms·
You got a lot of replies already, but let me join the crowd. Disclaimer: Was a Java guy, working with C# exclusively now by day (F# and Clojure - not Clojure-C
by darklajid 14y ago
You got a lot of replies already, but let me join the crowd.
Disclaimer: Was a Java guy, working with C# exclusively now by day (F# and Clojure - not Clojure-Clr - are my pet languages at night).
In my opinion the languages (specifically Java vs. C# now, ignoring other languages for now) started out really, really close when C# was new. C# gained a lot of nice features, while Java was - euphemistically - 'stable'.
Thinks that made my day and made every sporadic try to get back to Java (or work on Android) a chore: .Net events, properties (later automatic properties), usable generics, delegates, yield based generators/enumerators and the reason they were added: LINQ. Type inference aka 'var'. Basically every release brought half a dozen interesting features (and new technology, WCF/WPF/Silverlight/Workflow), while Java was sleeping as far as I could tell.
I understand the latest release of Java now came closer again, but C# is still quite ahead in my opinion.
Tooling: Visual Studio. Now, I'm not a total fan and some releases are better (2008, 2012) than others (2003, 2005, 2010), but it's a decent tool for most all your developing needs and ranges from free to 'includes the kitchen sink and costs $$$'. It supports three languages out of the box (F# is very interesting and a fully supported language!).
I like IntelliJ and sympathize with the Eclipse project, but for me the VS experience is more streamlined, simple and nicer in general.
Libraries: If it's _really_ popular in the Java world, you'll find a port (think nhibernate, log4net) or something equivalent.
I wouldn't want to go back (C# -> Java), but I DO have the jdk around for Clojure (and I'm still watching Scala from a distance).
- chaostheory 14y ago> Tooling: Visual Studio. It's a decent tool but I think the alternatives for other platforms are either equal or better. imo MS is typically playing catchup in this area now. > Libraries: If it's _really_ popular in the Java world, you'll find a port (think nhibernate, log4net) or something equivalent. This is what truly makes .NET a no go for me. There's just too few non-paid and open library equivalents compared to almost any other platform. Not mention the libraries in other platforms tend to have more features. The .NET open source community is still pretty small and weak, and I just don't see that changing (even with CodePlex it hasn't really had any drastic changes).
- edwinnathaniel 14y agoEclipse has rich plugins that even Visual Studio can't touch. (Maven) m2clipse alone is a very good reason to learn Eclipse. You can't download 3rd-party library with Documentation _and_ Source Code _and_ Navigate to the code without having to setup anything _and_ included in your build like you would have in.NET. It's a big plus for incorporating and debugging code when you need to do so. I've done C# and now fully Java (and JavaScript) and I wouldn't go back to a more locked and dumbed-down ecosystem. C# the language may well be better than Java but that alone is not enough of productivity boost. Eclipse, Maven, FindBugs, CheckStyle, Jenkins, Tomcat, Jetty, rich 3rd-party ecosystems are the key of my productivity boost. VS.NET, NuGET and having to write either MSBuild or NAnt plus IIS (express or not) aren't cut it. Not enough to be agile.
- darklajid 14y agoOkay, I love Eclipse (technically). It's just a dog, most of the time and tries to be everything at once. Still, it _is_ a great project. Maven: I .. never got that one. I guess the parts that make sense to me are covered by nuget. But I might be totally ignorant here. CheckStyle -> StyleCop ? Jenkins supports .Net Tomcat makes no sense in this list for me. IIS? Jetty: See above? Maybe the ASP.Net dev server, depending on why you'd list jetty? I rarely feel the need to do a lot in msbuild files. I might add build tasks (StyleCop?), but that's about it. Deploying is not in scope here (and for that I'd probably go for WiX. Not a huge fan of MSI, but that's what the platform uses and what other tools can manage). I appreciate your opinion and read your sibling post, but I guess we're both a bit ingorant of the other guy's platform? Jenkins: https://wiki.jenkins-ci.org/display/JENKINS/MSBuild+Plugin https://wiki.jenkins-ci.org/display/JENKINS/MSBuild+Plugin Sonar (mentioned in your sibling post): http://www.sonarsource.com/products/plugins/languages/c-sharp/ http://www.sonarsource.com/products/plugins/languages/c-shar... Incidentally the Sonar page for C# lists a couple decent code quality tools for the .Net side of things. But in the end if will remain a matter of taste & experience and I'm very certainly biased.
- edwinnathaniel 14y agoWon't argue about Eclipse performance. Sometime it depends on the characteristic of the project. Some of the projects that I worked on, albeit huge, Eclipse still performs pretty nice. While in other instances I do notice issues with the performance. Tomcat and Jetty make a lot of sense if you use it with Maven. The ability to compile, deploy and bring up your App Server is something that you don't get for free in .NET http://mojo.codehaus.org/tomcat-maven-plugin/deployment.html http://mojo.codehaus.org/tomcat-maven-plugin/deployment.html mvn clean install && mvn tomcat:deploy <-- win NuGET only deals with dependencies but doesn't deal with packaging, running unit-tests, running integration-tests, running PMD/CheckStyle/FindBugs as part of your build. All of these things are important for CI/Continuous Delivery. Oh almost forgot this one: JavaFX 2 may be way behind of .NET WPF but JavaFX 2 comes with a tool that can generate installer for OSX App Store (will bundle JRE automagically), Windows, and other platforms. WiX can't do that. I may be ignorant of some of the .NET stuff but as of 2010 - 2012, the last time I used .NET, .NET is still lagging behind Java when it comes to tooling.