For my current employer I've written a lot C# .NET application code and Java middle-tier code.
On balance, if I were to be tossed on a desert island and could have a choice of only one of these 2 languages, I'd opt for Java (as long as I get an Internet connection and Maven). In the end I find it more powerful (except in the area of interfacing to non-managed C libraries and OS APIs - C# shines in that department). Sure C# has more language feature goodies, but Java surpasses in certain other areas: *) JMS messaging (all manner of implementations available, from various hard-core and full featured enterprise versions, to various free, open source, to interesting experimental designs) *) Spring Framework - this has made dependency injection second nature for Java programmers. Plus a lot of great helper and template class stuff that makes short work of many routine things we deal with in the middle-tier. *) Concurrency Library introduced in Java 5 *) Java NIO (especially when coupled to Concurrency Library) *) iBATIS data mapper. Much more sensible (pragmatic and real world grounded) way to interface to relational databases than LINQ. *) Maven build tool (much better way to build and manage large software projects than Visual Studio) *) Hudson CI - great ease of use factor and pretty fair versatility *) More versatile applications servers, ranging from Tomcat, Jetty, MINA, Grizzly, to JBoss, Glassfish, et al. I've done a lot of a- typical development in app servers. Which was possible in environments like JBoss or Tomcat, which are actually very open-ended (especially when Spring Framework or EJB3 is in the picture). When I started doing JBoss JMS MDBs, I was doing a load-balanced cluster with little fuss or muss in no time. The .NET middle-tier stack wasn't comparable then and still isn't now. Too damn web focused. *) Just in general the vast eco system of libraries and frameworks, where much (if not most) of the good stuff is free and open source - and Maven is there to make it all easy to tap and incorporate with controlled rationality. I guess the point I'm making here is that it isn't so much Java the language per se that is the strength of Java (and it is a pretty decent language all in all) - it is the whole eco-system that encompasses the experience of being a Java developer. There's an immensity to that eco-system that levels down a whole ton of the niffty language features of the seemingly more fashionable languages. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "The Java Posse" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/javaposse?hl=en -~----------~----~----~----~------~----~------~--~---
