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
-~----------~----~----~----~------~----~------~--~---

Reply via email to