4 ms·
C# tools and libraries have been inspired by Java since the inception. I'll give C# a +1 for lambda/functional feature but the rest does not equal +1. MSBuild
by edwinnathaniel 14y ago
C# tools and libraries have been inspired by Java since the inception.
I'll give C# a +1 for lambda/functional feature but the rest does not equal +1.
MSBuild -> Ant
NuGET -> Ivy
DoesNotExist -> Maven (don't forget to count maven plugins).
NHibernate, Log4Net, etc -> inspired by its Java counterpart.
How about sane deployment/packaging system? WAR, JAR, EAR push to App Server (tomcat, glassfish, etc). Not so easy with IIS.
I argue that Java open source library is far richer than .NET (no hadoop, no hbase, no cassandra, nor GWT)
- JonoW 14y agoRegarding deployment/packaging, there is MsDeploy for that. You can deploy files, IIS settings, db scripts, registry settings from a sip package
- charlieflowers 14y agoBut if you talk language, Java has never held a candle to C#. The original C# language and virtual machine was inspired by Java. Then, C# got: * Better generics * lambda expressions * the yield keyword and compiler magic for iterators * explicit interface implementation (rarely needed, but very well thought-out for when you need it) * LINQ!!! * Type inference * Dynamic keyword (I'm forgetting some things, it's late). Anders has guided the C# language brilliantly ... Java has been outpaced at every step of the way. So many somewhat radical features have been added to C#, and from my standpoint, every single one of them was very well-done.
- edwinnathaniel 14y agoLanguage alone does not mean tons of productivity gain. Building software requires more than just syntatic sugar. C# has all these features yet I have never seen killer tools that changed the .net landscape like Rails did with Ruby. While I would not call those language features smoke and mirror, I argue that they are merely nice to have and not ground nor thought provoking. At the end of the day, Java ecosystem still move forward way faster than .net. Spring, cloudera, datastax, alfresco, liferay, ehcache, jboss, tomcat, Embedded server like Jetty, and other great, free, mature, serious, and open source tools are available at our disposal vs taking to sales rep to buy licenses, which are a common activity in .net world.
- SideburnsOfDoom 14y agoI could pick those up one by one, but time does not permit. You are largely correct that there seems to be more experimentation in the the java open source ecosystem, and that some of the key parts of the same in .Net are ports from java (e.g. nUnit, log4net, nhibernate). Though in all those cases there are alternatives, it's just that the particular tool mentioned is most popular. Possibly due to familiarity. With maven, I'm not sure that it's a good thing https://www.google.co.uk/search?q=maven+hate https://www.google.co.uk/search?q=maven+hate and there are lots of ways besides msbuild to do builds and installs. The rake, jake, psake family of tools are all viable. With things like Cassandra, I don't care what language the server is written in as long as I can connect to it. This is IMHO the way forward, and not just for .Net. Though if you're looking for a noSql db written in .Net, there is RavenDb.
- edwinnathaniel 14y agoSir, Maven is an awesome thing. Would you want me to do a query in Google for each and individual .net and the word "sucks"? Since when that matters? There will be minorities that just happened to dislike everything. There are also people who just happened to use maven in the wrong way and ended up fighting with it. This suggests that you have never used and experienced Maven. Combined eclipse with m2clipse and you will get awesome development experience. Imagine not having to download 3rd party library manually by visiting their website. Imagine autocomplete of the freshly acquired 3rd party lib via your IDE to also shows you the javadoc. Imagine trying to navigate to the 3rd party class and method implementation without setting up your IDE or messing with path/folder setup automagically. You cannot do any of these in .net nor vs.net. I know RavenDB but can you compare it with Cassandra, Hbase? Not by many many miles. The latter two are battle tested by top most traffic website while the former has yet to reach that level. I also argued that the javaee 6 stack provides way better, simpler, and modular approach to building back end systems. There is no equivalent EJB 3 in .net (I will be damned if you do another google query for EJB sucks. the old one is, but not the new one. Also experiencing the tools before making your judgement would not hurt). All in all .net framework for the most part of it have always been behind Java (except in the category of presentation/UI). I prefer not to continue the discussion when the obvious is there right in front of us: C# has cool language features but honestly nothing has been groundbreaking in the .net world. The last one probably was asp.net mvc and the changes in the core asp.net as some sort of an api instead of the old asp.net webform stack, mimicking the JEE web profile approach. Rake and the rest can be considered sub features of maven. Not. Even. Close.