tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From llekann <>
Subject Re: From Java to C#, ASP.NET [Off Topic]
Date Wed, 25 Jan 2006 09:45:18 GMT
Microsoft Web Development Experience is truely  more pleasant than that of Java, and i have
known a number of people do  the switch based on that, though they usually like to support
it with  some additional arguments like u did, but at the end of the day, the  ease of development
and that everything is right there in one place  still comes through as the reason, or at
least the primary reason, for  the switch.
  As with anything in life, there is a price to pay for freedom, and Java  in many ways is
liberty. And guaranteeing and assuring that liberty is  not an easy task. But of course you
decided to make your (developer)  life a little easier. cool! i only hope you thought it through.
  I dont think there's a point giving attention to the so called "points"  you made comparing
Java and C# / ASP.NET. i see them as some of those  usual "add on" reasons, behind the real
  For those of us that liberty, security, etc, are important to, the extra "burden" of Web
Development in Java is "okay".
  Hey! by the way a person may be eight years into something and have little or no understanding
of it!

Tony LaPaso <> wrote:  Hi all,

I should mention that this post is a bit off topic. If you hate 
Microsoft then stop reading now and I'm sorry for wasting your time. I 
don't own stock in Microsoft, I don't know Bill Gates and nobody paid 
me or asked me to say the things I wrote below. These are just my 
opinions based on my experiences with many years in Java and two months 
of learning .NET/C# 2.0.

I've been programming in Java/J2EE for the past 8+ years, most of this 
time as a contractor for several companies on many J2EE projects. I 
even have a small (and now hopelessly out of date) Java web site that 
I've maintained for the past 5+ years at, which 
will be removed in early May.

Until about 8 weeks ago, I never even considered looking at anything 
Microsoft offered. Recently though, on a whim, I browsed over to the 
Microsoft site because I'd heard about their new release of Visual 
Studio. I'd been a Windows programmer back in the mid '90s and was 
curious to see how Visual Studio (it was Visual C++ back then) had 
evolved (or not).

I didn't download Visual Studio but instead I downloaded a couple free 
tutorial videos for Microsoft's "Web Developer Express" product (which 
is a free product, BTW). "Web Developer Express" has a subset of the 
features in the full "Visual Studio" product and is used for building 
server-side (or client side, for that matter) web apps. I couldn't 
believe what I saw. "Web Developer Express" blows away anything we have 
in the Java world for developing server-side web apps. It was kind of a 
jaw-dropping experience to see what the tool can do and what ASP.NET 
offers compared to servlets/JSP/Struts/JSTL/JSF.

I don't want to turn this post into a "feature by feature" comparison 
of ASP.NET and equivalent Java technologies. My impression, though, 
from watching these tutorial videos is that we in the J2EE world are 
living like knuckle-dragging Barbarians, scratching out an existence 
clothed in bear skins, using stone knives and sticks as our tools of 
choice. Those using .NET are living in fine brick homes with hardwood 
floors, fireplaces and regular visits from PeaPod.

After looking at ASP.NET I became interested in looking at the C# 
language, proper. My impressions of C# vs. Java mirrored those of 
ASP.NET vs. servlets/JSP/etc. Java has kludgey support for properties 
and events (they're just regular methods with parameters) while C# has 
the constructs (delegates & events) built directly into the core 
language. C# also supports co-routines, something we have to simulate 
in Java as well as "out parameters" (which allow a method to change the 
caller's parameter's value) and operator overloading. C# also has 
"nullable" types. Imagine Java's primitive types being able to hold 
null values. This is highly useful when working with databases.

Finally, .NET provides an integrated and more comprehensive approach to 
setting security permissions and versioning of what are called, 
"assemblies". Assemblies are very roughly equivalent to JARs. This 
allows you to compile your code against a specific version of an 
assembly and have that version information maintained in the resulting 
executable. It also allows several versions of the same assemblies 
(again, think "JARs") to co-exist peacefully in a global, system-wide 
cache of assemblies. Sun should have given us something like this five 
years ago.

Another advantage I saw with .NET is that it is more "cross language" 
friendly than Java. First of all, .NET, like Java, executes a "platform 
neutral" representation of a program (analogous to Java bytecode). 
Unlike Java, .NET programs can be written in many languages (C#, C++, 
Perl, Python, J#, VB, and many others). Microsoft's J# is, from what 
I've seen, a clone of Java (although I'm sure there are differences). 
The point I want to make is that once compiled, .NET programs can call 
each other seamlessly, regardless of the language the programs were 
originally written in. So for example, a J# class can extend a C# class 
which can extend a VB class. You're not tied to one language like you 
are in Java.

I know that, theoretically, any language could potentially be compiled 
into Java bytecode (I guess Groovy is an example). Practically, 
however, this is not commonly done.

Suffice it say, I am switching after 8+ years in Java. It was a tough 
decision at first because I have so much time and effort invested in 
Java. When I eventually get on a .NET project I will be starting over 
as a junior person making a junior person's salary. That won't be 
pleasant. I have close to $1,000 in Java books that I've accumulated 
over the years that are now for sale on Amazon. Ultimately though, I 
felt I'd be able to spend more time actually writing code on a single 
consistent, and what seems to be superior platform (.NET) rather than 
gluing together a half dozen open source tools with XML files, which it 
seems J2EE requires far too much of.

To me, J2EE has become too fat and burdensome in the past few years, 
especially with the proliferation of so many competing open source 
projects. I think too much choice can be as bad as not enough choice.

BTW, I realize .NET is not perceived as being as "cross platform" as 
Java (although that's changing as the Mono Project 
[] gains traction). Initially, this lack of 
"cross platformability" gave me cause for hesitation. But then I 
started thinking of all the J2EE projects I'd been on in the past 8 
years. How many of them do you think ever used the same Java code base 
on multiple platforms? How many of them ever ported Java code from one 
platform to another? Zero. Not a single one, at least not to my 

In my experience companies do not port their back-end enterprise 
systems between platforms. They usually know what platform they will 
run on long before the first line of code is ever written and they 
stick with that platform. So, "cross platformability" was, in my 
experience anyway, more applicable to systems with significant UIs and 
Java has not done well in this area.

I think "Cross Platformability" sounded great when Java was young 
because we all had these visions of cool Java programs running on all 
these different platforms and within web browsers. It was a very 
seductive thought. But this vision depended on Java being a success on 
the desktop. So much for that.

Again, this all is just my opinion and somewhat preliminary as I've 
only been learning C#/.NET for about 2 months now. Many of you will 
undoubtedly vehemently disagree with what I've said and probably 
suspect I have ulterior motives for making this post. I posted this 
because I just wanted to share what, for me, was something of a happy 
and exciting revelation. At this point I feel a bit like I did when I 
switched from C++ to Java back in 1997. I realize there is always 
strong and emotional anti-Microsoft sentiment in these groups for some 
reason. All I can say is that when I looked at what each platform 
offered, for me, .NET and C# were the winners, based on their technical 
merits. I never thought I would leave Java, especially for C#, but so 
far I'm not regretting it.

Good luck to you all.

Tony LaPaso 

To unsubscribe, e-mail:
For additional commands, e-mail:

Do you Yahoo!?
 With a free 1 GB, there's more in store with Yahoo! Mail.
  • Unnamed multipart/alternative (inline, 8-Bit, 0 bytes)
View raw message