ONJava.com -- The Independent Source for Enterprise Java
oreilly.comSafari Books Online.Conferences.


AddThis Social Bookmark Button
  What .NET Got Right
Subject:   .NET will take a Bigger Bite - 3
Date:   2002-02-16 08:20:06
From:   kjambu
Response to: .NET will take a Bigger Bite

Hi denizkaan,

Here is a point by point reply.
My replies are between two lines after
each of your comment like this.
my comment

"Take for example the recently offered JWSDP from Sun as a single window download

WebServices. Take a VB.NET/C# guy and a Java guy who are both new to implementing
WebServices. I can bet by the time the Java guy writes his first Hello World Web

the Microsoft programmer would have mastered atleast all the fundamentals of

like how to publish, how to consume, and the fundamentals of what is WSDL,SOAP,UDDI

what they are meant for (if not mastering them)."

First of all, there is no relation with using .NET, JAVA and mastering web services

This is very funny. It sounds like if you use MS pots rather than JAVA pots while

you will master the Turkish cusine in a shorter time. Actually, go and look at

You will see many many web services related products, which help creating and

them from beginning to end. You can choose whichever you like. You know freedom of

choice idiom. Right? : )
Undoubtedly there is relation between .NET, J2EE and learning WebServices. It is

.NET that revolutionized WebServices as a concept we are seeing today and Java

followed course. If you say that the RPC program we wrote in C 15 years back and

WebServices are one and the same, then we are talking on a different plane.
"In fact there is no comparable tool to VS.NET in the whole of Java world including

Cafe, VisualAge or any such thing."

Really? Actually, there are many many tools from many different vendors. Please

take a
look at www.javaskyline.com web services section. By the way, Visual Cafe? We are

on 2002
Jambu. There is no Visual Cafe anymore. :) There are 30 or something like that

IDE's from
many companies.
Yeah i agree there is no Visual Cafe anymore. I know there are 30 or odd IDEs for

Java. Only thing is i do not know which one to use which day of the month. One good

robust solution is better than 30 half cooked and hurriedly brought in versions. I

have also written an IDE for Java, will you use that. VS.NET is the end result of

15+ years of research and productivity testing.
"I can say that the only innovative thing Java did in its whole life time was to

bring in
the context of Servlets (Compileds pages) when the entire world was toying with

whihc is now anyway a matter of history with ASP.NET offering everything Servlets

have to
offer and more."

Well, how can you say the only innovative thing Java did in its whole life time
is servlets? How many Java based technologies did you master?
Tell me one more thing. Don't ask questions back my dear friend.
"Microsoft made some mistakes which Java corrected. That does not mean that Java

them. I am talking about the DLL Hell and Registry problems. That was the area

which made
EJB succeed. And that is also a matter of the past now with X-copy deployment

in .NET now."

First of all, it does not matter if Java invented them or not, but I think Java

many things. Do you suggest MS invented C#? What is the relation between DLL hell

registry problems and EJB???? Sorry, but I cannot see any relations.
I cant help if you cant relate DLL Hell/Registry issues with Components. Developing

Microsoft components meant we had to struggle around with Registry issues. The

whole world knows that. Because of the beautiful packaging mechanism that Java

brought in, in the context of EJB deployment, EJB's atleast did not have this

problem. Metadata getting tagged along with the component was a great thing. But

again this was not a solution that Java invented. It was a need that made them do

so. They needed a platform independent solution and hence could have not thought

about tying their component to the Windows Registry. Now however .NET components do

the same.
"If .NET was not there then there is meaning in using Java as a Technology for the
Internet. But i dont see any reasoning in using Java for the Internet when we have

an all
in one solution in .NET"

Thats because you are blind. Can't you still see "having one solution" is root of

all evil?
Ever heard of something like competition and its effects on quality and prices of

I may be blind, the whole world is not. Having one good solution is always better

than having thousand hacked solutions. A solution is supposed to help produce

results. You cant expect every programmer to tweak around with the files and even

worser with the code of each product. We are not doing research, we are talking

"ClientSide of Java according to me is almost dead. See the way ASP.NET has

leveraged XML
to bring Server-side controls. This one concept i cannot but admire. The idea is
I dont need to write a single line of code for client side validation."

What is the relation between clientside and .Net? When people talk about clientside

is dead, they don't mean client side validation, but, client side programs. I can't

you are saying this.
I am very clear when i say Client side of Java is dead, that i am meaning Applets,

AWT and Swing specifically in the context of developing applications for the

internet. .NET has made a lot of innovations to develop code on the client side.

Specifically the Server controls, Validation Controls and the way they have

integrated HTML, scripting and Component code in one single IDE is marvellous. Drag

and drop and code...your applications is ready. Think of any comparable solution to

this in Java for client side development.
"Take for instance ADO.NET again. Manipulating XML is one of the key developer job

and that is done in a fizzy in .NET"

What is the relation between ADO.NET and manipulating XML? And, what do you mean by
manipulating XML is fizzy in .NET? Do you mean it is easy or fast or something

If you mean "easy", XML manipulation is already easy not only in Java, or .NET but

in Pascal and Fortran now, thanks to standard XML manipulation APIs (DOM, SAX etc)

libraries that implement them. If you mean fast, it is much faster in Fortran

on Unix than .NET's whatever language. Should we turn back to using Fortran then? :

Let us be very clear that we are comparing .NET with Java and not with Pascal or

Fortran. Faster depends on many other issues than just a language. That way we can

do all this in pure Assembly and even worse in binary. So let us compare apples

with apples. XML has become a medium by which we want to transport data. Then the

data manipulating objects that a tool provides should help us do that easily. To

that extent .NET has in a focussed manner included many tools, which XML based

component development a fizzy. In Java i have to write every bit of code including

the stubs and skeletons. That's what i mean.
"Above everything, the beauty of it all is .NET is a product that is getting

released as a
finished product. Compare it with EJB which released specifications in three chunks

the related products even now not having implemented many of the EJB 2.0 features."

Dear, dear. First of all, there are many containers that implement full EJB 2.0

Again, look at www.javaskyline.com's EJB section. EJB is progressing slowly, and

at the rate that it should progress. There is no reason to haste and make mistakes.

are seeing security disaster after security disaster related with "long time"

and tested MS products starting from OS to web browser, .NET to IIS. First of all,
I think MS proves that haste is evil. Second, if there was "ONE SOLUTION" in Web

arena, and that was IIS, many firms would not be able to shift to some other

product after
IIS vulnerabilities were revealed. In short, once again, "one solution" is really

idea my friend.
Microsoft is not bringing in .NET in a haste. It has done serious introspection of

its own products, studied the best products available outside of Microsoft, taken

the best of all worlds, spent three long years diverting 80% of the company's

resources to deliver such a product. In the kind of technology advancement we are

seeing today, beyond a point we cannot be slow. There is certain amount of haste

that needs to be applied. Security is an issue in whichever technology we talk

about. Just a web technology cannot provide a reliable security mechanism. The

Operating System also plays a major role in protecting internet systems today. And

we should know that the Operating Systems that we are using today were not build

for the internet. New Operating systems have to emerge to plug the security

loophole in a better way, if not completely seal them.
"Even the JDK is not fully mature after 7 years of Java. What are we talking about.

Whose money
are we playing around with."

JDK is not fully mature, and it never will be. : ) Because it is evolving

according to innovations and shifts in hw and sw world. For example, XML became

and related api's added to JDK. So, it is better to say the technologies that JDK

is now
containing were not mature 7 years ago. Do you suggest first JDK should have XML

parsing API?
There was no such thing at those times dear Jambu. Did Visual C++ 1.0 had DOM

parser API?
It would be bad if Sun said "ok. JDK is finished." Do you think that .NET is

There will be no more improvements in the future? What about COM, DCOM, COM+ etc?
Wasn't COM mature so that there was a need for DCOM? Wasn't DCOM mature so that

was COM+? And what money are you talking about? JDK is free. : ) But Visual Studio,
Visual Studio.net are not. : )
Atleast when a version is released, it should not have problems. Every version,

when it is released itself has deprecated functions. Even now see how many JDBC

driver options one has. Every platform has one and you do not know which one is

performance efficient. You have pure Java drivers, we don't know from how many

sources. Which one do i use, who guarantees it. See the way EJB specifications were

released. By the time a product implements a specification, another new version of

the specification arises and then there is a learning curve for the average

programmer - i am not talking about a seasoned programmer like you. Sand is free on

the beach. Do we build our houses with it. Trees are abundant in the forest. Do we

build our boats with it. We buy from reliable specialists ok.

"Thanks for accepting that client side java is dead. Microsoft's innovative client

tools help enhance the RAD environment even better. Take for instance, i need not

worry about browser compatibility issues, that too without writing a single line of


Well, first of all, MS is the root of browser compatibility issues. It created non

HTML tags first. And yes, you should worry about browser compatibility issues. Your
pages might not work in Netscape or Opera (Which is my favourite web browser by the

Fully w3c compliant, and much much much faster than IE or NS.)
Every company worth its name has extensions to any technology, leave alone HTML.

Even BEA's Weblogic has so many vendor specific solutions. And take it from me. No

vendor worth the business salt, will stick to a generic specification compromising

on the market. When i was in the armed forces, in a specific location, we used to

fly about 150 miles once a week to take bath. How many of us do that way. Using

Netscape and Opera (Don't change your favourites) is something similar to that. I

also have favourites. I even today use the spreadsheet program i developed in

Pascal when i was in 12th grade. Do you want to use it, or will you use it.....
"What are we talking about Cross platforms. How many of us have used Java to

develop pure
Cross platform applications. If that is the case why even after 7 years of Java,

JNI is
around. How many of us have written Java applications to access Visual Basic DLLs."

I know many many developers including me who wrote pure cross platform

applications. Why
should I restrict myself to one platform? And more importantly, why should I write

apps to access Visual Basic dlls??? I am using Java to not to deal with Visual

and Visual X, Visual Y, Visual Z dlls.
If Java cannot access a component running on another popular platform seamlessly

without tweaking around,then what is cross platform we are talking about. Should we

shun all the legacy code to embrace Java. Yeah why do you need JNI then, if Java is

the all in all solution.
"Even today i can say, to be on the safe side, more than 70% of Java programmers

notepad or some such editor to write Java programs. Many of the Java presentations

done in Microsoft Powerpoint. The first or early versions of the JDK and other

come for Windows."

OH! WHAT? I did not know that!!! If java presentations are done in MS PP, I should

stop using
J2EE and shift to .NET. : ) Well, all those IDE producing 30+ companies are stupid,
since they are writing IDEs which they are not able to sell since Java Programmers

use Notepad.
: ) Especially Borland released 6th version of their IDE, although they were not

able to
profit from the previous 5 versions. Thanks Jambu, I did not see it before.
Why did I use wonderful Java IDEs like IDEA, Netbeans for last 5 years while there
is such a wonderful program called Notepad? I must be stupid! Now I see the light!

Bill Gates and .NET team for creating this wonderful program called Notepad.
It may be small, but notepad definitely is one of the favourite editors. And take

it from me, with all those beautiful IDEs you are talking about (I have also used

many of them) we still take recourse to the small editor notepad for doing many of

our Java jobs. Out of the 3000+ Java books that must have been there in the market

80% of them use notepad to teach Java. No Visual Basic book does that. Can you see

what i am saying now.

"For reliability purposes, it is better to be with a single vendor, rather than no

at all. How many of the mid level organisations have the technical expertise to

play around
with the Linux Operating System, Apache Open Source Servers and so on. That may be

for research not for business."

First of all, believe me there are some to play with them. Do you know how many

Linux distributers
are around? They all played with Linux OS!
Yeah there are some. Each one did in his own way. Which one do you rely upon.

Playing around does not give credibility. I have many Unix fanatic friends, all of

them use their fanaticism only for research, not for business, even their own

According to me .NET is the third solution for the internet. First was ASP and COM,

Java and now .NET Let us accept facts and embrace the better technology. There is

like monopoly. When something better comes up no one can dictate. All of us know

that Java
definitely cast a shadow on Microsoft technologies. Then why this fear syndrome of
monopoly. Is Unix dead? Let us see what is good for humanity. Let us take the best

of both
worlds and get going.

I have no comment on the paragraph above. : ) The substance you had used before

writing this
should be something really strong. Better be careful.
Because i am talking facts. There is nothing to comment when the facts are bare and

open. The days of Java's dominance is over. Wait and see, it is definitely going to

be .NET I also loved and used Java and still using in some of my Distributed

applications. But that does not mean i will stick to it when there is a better and

reliable technology around. Let us learn to accept facts.
I am a Java fanatic... But, Because it was good, we cannot leave the better things

are coming up and lag behind.

Oh are you a Java fanatic? Really? I think you mean the coffee. Right?
True i am a coffee fanatic too. I am from the extreme south of India, where we have

the best of coffee daily. I miss that, Java gave me some. .NET seems to be better.
I like the best coffee. I dont settle for less flavour.
I wonder how many Bill Gates' the world will see.

I hope not many. : )
That's it! Thanks for agreeing. When i moved from VB/ASP/COM to Java nobody

bothered. Vice versa seems to be a problem for some. One way traffic...?

Thanks denizkaan...

I enjoyed your points in favour of Java, but Java lacks the old flavour now my


.NET and J2EE will go together...., only thing is .NET (un)fortunately will have

the lead. You have to live with it.

Jambu Krishnamurthy