Comparative tests like this are pretty worthless. Just ammunition for zealots, IMHO.
And hardly any organisation will choose Java over .Net, or .Net over Java because of a speed test.
Politics, fear of vendor lock in, personal preferences, power struggles, and installed base (existing apps, hardware, OSes) all play a much greater role in choosing one or the other.
A test like this is just a nice way of hitting my .Net colleague over the head, but useless otherwise… ๐
Now, I will be first to criticize any company for a slow or badly designed product (often the case for microsoft), but the sun paper was just ridiculous. The only impression I got from it was that of desperation.
sun is clearly afraid of .NET and is doing everything it could, especially its weapon “platform independence,” to convince people not to side with .NET
Anyway I think a better comparison could be made like this: Two independent teams of people. Each one is expert in one of the technologies. A document containing requeriments for an application would be given to each team.
As a whole, I regard vendor-sponsored or vendor-created reports as untrustworthy and useless.
But I must say, that the SUN benchmark is among the worst I have seen yet, with the MS response a tad better. At least MS managed to refute some of the tunnings of the .NET system as hopeless.
I surely hope that SUN have some better reasons for deploying Java Webservices than this (OK, I know they have).
I find it amusing that they use 64240 as the TCP RWIN size. This is also what I use but it seems like all the broadband tweak guides rarely recommend it.
Basically with an MTU of 1500 your maximum usable data (MSS) in each packet is 1460, so your receive window should be a multiple of this. e.g 1640*44 = 64240
On a fresh windows install I usually get about 2 meg on my modem, change the RWIN, reboot, and I am at my 3 meg cap.
I can never seem to get
/proc/sys/net/core/rmem_default
or
/proc/sys/net/core/rmem_max
to take a change, yet I usually manage better throughput from my Linux desktop than my windows partition.
I have looked around for white papers but found very little info on this. I think the closest relevant paper covered Solaris and Windows clients and graphed the time they took to set up or tear down a connection with other TCP/IP stacks.
performance is one thing, but writing the app in the first place is far more important.
and j2ee is a complex nightmare to develop for. microsoft is going to keep killing sun in the middleware space as j2ee is bloated and inferior compared to .net.
sun should fund a small team to refactor j2ee and put the new thing out on the market using a different name.
otherwise sun is doomed. j2ee is losing mindshare and marketshare like a stone dropping from the sky.
> j2ee is losing mindshare and marketshare like a stone dropping from the sky.
Says who, I see a lot of high profile projects dumping Windows in general, not even looking at .Net and choosing J2EE on Linux/Unix. If anything my impression is J2EE is gaining more momentum then ever. As for claims that J2EE is too complex, this is just not true if have got at least half of brain or if you’re not a completely hopeless VB monkey. The only more or less complicated piece of J2EE is EJB’s, the rest is pretty straightforward and fairly simple especially if you use tools. And by the way, with IIS security holes coming out almost weekly .Net as a serious web service alternative is just not possible. I have already seen a contractor being basically laughed out of the room by a bunch of IT people for proposing an IIS based public web infrastructure, security goes a long way guys.
The largest J2EE deployment in history is being done by IBM at eBay and it is just a complete nightmare. One area that has plagued the rollout from the start is the billing problems as partially described in this PCWorld article…..
eBay has claimed on their boards that this new software package went through extensive testing. Since the billing problems have been well known since February this year just the inability to fix the problems gives one cause for concern. But the rollout is far from complete and more problems continue to surface in all areas as the scope of the software’s operations increase. This you are all going to find is where JAVA’s famous scalability problems come in.
Sun has been trying to make JAVA work now for some 10 years and cannot even get it to run properly on their own hardware and OS. Now .NET is starting to outpace them !
> The largest J2EE deployment in history is being done by IBM at eBay and it is just a complete nightmare.
Even if eBay had some problems with the infrastructure and app server (WebSphere) in particular, J2EE is still the only thing that could do the job on that scale. Plus some ambigous WebSphere-related problems on some distinct case don’t mean that J2EE as a hole got problems. J2EE is still overwhelmingly the only choice on the medium to the high end of the enterprise scale. Anyplace where scalabilty, stability and security is of any concern .Net won’t be touched with a 10 foot pole.
Like it or not, but where I live, there is quite a few job openings for .NET development. There are some Java positions and very few C/C++. To me Java seems like a great platform, but nevertheless, a platform that is losing momentum.
I like the WORM aspect of Java, and the fact that I am not tied to one vendor in terms of development tools and server products. I also believe that C# is popular due to the IDE and not due to the language. But despite all its shortcomings, I have to say that the VS.NET IDE is a very productive one. For IDE development (Winforms and ASP.NET) its a killer. For backend stuff and scalability Java has a proven trackrecord.
But I really think that SUN needs to do something NOW, if they donยดt wanยดt to be crushed in the MS machine. That would be a huge loss for the IT community.
In my experience, developing web service client applications, C# and .NET are significantly more productive than Java. Literally twice as fast developing the C# version of the (admittedly trivial) applications; they were faster at runtime, too, although there was a significant delay in the C# version during program startup (I think it was pulling the WSDL file from the server, while the Java version was static).
application server platform such as IBM WebSphere or BEA WebLogic in their testing,
choosing instead to use Tomcat, a lightweight application server that does not support
core J2EE features such as EJBs
In most projects, you don’t need EJB’s or a major commercial application server. Only use them if you want to slow down performance and over complicate your project(okay, they are some cases it makes).
Lightweight combinations like hibernate and spring offer a higher performing and simplier development model than ejb, while still offer transaction managment throughout the application.
I’ve never understood the job argument. If you look at a job board and see more jobs available for Java/C++ than for C# you can look at it in two ways.
1. Lots of companies are using Java/C++ and are looking for the skilled labour, while less companies are using C#.
or
2. A lot of developers have started developing using C#, a lot of companies are using C#, these developers are getting these jobs, hence less job postings on the job boards. Less people are developing in Java/C++ so there’s more open job postings for these positions because there’s no one to fill them.
I’m a contractor, been a developer since 1989. I code on Mainframe/*nix/Windows have been on a .NET contract since February. Before that I was on a .NET contract for 1 1/2 years. Before that I was on another .NET project. Before that I was doing Java. My contract ends in August, then I’m coming aboard full time as a Java Web Services developer, but the entire front end and web app are written in .NET. There’s plenty of .NET positions out there; and a lot of the big companies are using it.
For the service side, its fairly trival to expose a method/class as a service. You just have to watch the types
uses/exposes.
With apache axis, you can expose and bunch of methods
as web service via a couple of lines in its server-config.wsdd. I would paste and example, but this forum strips html/xml tags.
I don’t think either .net or java webservice are really that hard.
For client sides –>
There are options for dynamically invoking either, or generating client stubs via a wdsl file. Eclipse has a couple plugins for stubs.
Another option that I recently came across, that seems very cool for java to java or .net to .net. is make you buisness service implement an interface. You client just has a reference to the interface.
Frameworks like (springframework) provide a facility to proxy the object that the client is using. This allows you to develop the same client that has no idea it is using a local implementation of the service, rmi, or a web service.
client does –>
InterfaceName service = ctx.get(“orderService”);
service.stuff
In the Spring applicationContext.xml you define a bean as such .
The example below (see url) lists the same service exported 4 different ways
A client should be able to use anyone of them without know a
Hehehe…so they’re still throwing dirt around eh? But in the REAL world, just take a look at the job listings and language popularity stats and you’ll see JAVA is way ahead of everything else, with C/C++ on par or slightly below it – C-sharp is NOWHERE to be found – so much for being a Java-killer ๐
Plus, Java is dominant in mobile devices, including in cars, smartcards and SIM cards, mobile cellphones, and even now in handhelds (e.g. Blackberry).
So, no matter what Sun/IBM/BEA/Oracle/MIcrosoft says, it’s clear JAVA is (or is becoming) the most ubiquitous platform in IT history!
Sorry to be blunt.. but look.. if you aren’t a developer in a corporate environment (and no, doing your own web site, your school club web site, or otherwise messing around) you don’t know and you can’t speak authoritatively.
If you haven’t developed applications in these environments, you don’t know, and you can’t speak authoritatively.
If you understand the Java J2EE environment and/or the MS .NET environment, you can start to know.. but should probably listen more than speak.
Both environments have many many tools that help speed development and streamline everything. Good IDE’s exist in both worlds, but in the Java world you see a much more heterogeneous mix of tools. That is a strength, and in fact, you tend to eventually see these tools ported to .NET.
Developing web services in Java can be trivial.. you don’t even have to compile the Java source code (using the Axis .jws deployment strategy..) to get it up and running. Building the infrastructure behind them can be easy or hard.. depending on what you want to show. MS wants to show it hard (EJB’s and full app servers) but thats certainly not required.. and not nearly as frequently used. More people are leaning to JDO style solutions with a variety of data abstraction layers.. with their corresponding speed.
Fundamentally both benchmarks are flawed.. the way to get a good one is to let each vendor bring in their own software on specified hardware and run it.. just like the other performance metrics on DBs and systems work. But.. the interesting thing is to compare both vendors best case solutions.. and use that knowledge for yourself when building or working on systems.
For anybody who is still saying “Java is Dead!”.. or perhaps “Sun is Dead!”.. or “.NET will never do anything”.. well.. go back up to the first or second paragraph. They all have their place and aren’t going away any time soon.
Have a look at ECLIPSE; it’s open source, has a lot of great plugins, GUI builder, etc. It’s a lot better than VS.NET IMHO. Cross platform also. Great tool…
I laugh everytime some deluded people say “java is dead”, since they’ve been saying this since the 1990s, and look what’s happened – Java is now probably the most ubiquitous platform in IT history, being dominant in servers, mobiles, and now even mounting another offensive on the desktop with the rise of Macs and Linux (and especially the java desktop, with China ordering several hundred million of these from sun) – there is even a real time Java environment that is being tested by the USA navy and probably deployed in aircraft carriers and such! Whouldda thought a language based on a garbage collector would enter such a niche!
Plus, Java is the foremost language in education – even in open source education in school!
It’s GOOD to be a java developer, and especially an open source java developer! The most JOBS, the highest paying jobs, the respect of leading industries and management and many open source organizations (including apache, which is releasing geronimo, and open source J2EE app server), and the language of the present and future.
Oh no, not another Petshop drama.
Comparative tests like this are pretty worthless. Just ammunition for zealots, IMHO.
And hardly any organisation will choose Java over .Net, or .Net over Java because of a speed test.
Politics, fear of vendor lock in, personal preferences, power struggles, and installed base (existing apps, hardware, OSes) all play a much greater role in choosing one or the other.
A test like this is just a nice way of hitting my .Net colleague over the head, but useless otherwise… ๐
Now, I will be first to criticize any company for a slow or badly designed product (often the case for microsoft), but the sun paper was just ridiculous. The only impression I got from it was that of desperation.
sun is clearly afraid of .NET and is doing everything it could, especially its weapon “platform independence,” to convince people not to side with .NET
How fun this tests can be
Anyway I think a better comparison could be made like this: Two independent teams of people. Each one is expert in one of the technologies. A document containing requeriments for an application would be given to each team.
As a whole, I regard vendor-sponsored or vendor-created reports as untrustworthy and useless.
But I must say, that the SUN benchmark is among the worst I have seen yet, with the MS response a tad better. At least MS managed to refute some of the tunnings of the .NET system as hopeless.
I surely hope that SUN have some better reasons for deploying Java Webservices than this (OK, I know they have).
They have to come up with something better….
I find it amusing that they use 64240 as the TCP RWIN size. This is also what I use but it seems like all the broadband tweak guides rarely recommend it.
Basically with an MTU of 1500 your maximum usable data (MSS) in each packet is 1460, so your receive window should be a multiple of this. e.g 1640*44 = 64240
On a fresh windows install I usually get about 2 meg on my modem, change the RWIN, reboot, and I am at my 3 meg cap.
I can never seem to get
/proc/sys/net/core/rmem_default
or
/proc/sys/net/core/rmem_max
to take a change, yet I usually manage better throughput from my Linux desktop than my windows partition.
I have looked around for white papers but found very little info on this. I think the closest relevant paper covered Solaris and Windows clients and graphed the time they took to set up or tear down a connection with other TCP/IP stacks.
performance is one thing, but writing the app in the first place is far more important.
and j2ee is a complex nightmare to develop for. microsoft is going to keep killing sun in the middleware space as j2ee is bloated and inferior compared to .net.
sun should fund a small team to refactor j2ee and put the new thing out on the market using a different name.
otherwise sun is doomed. j2ee is losing mindshare and marketshare like a stone dropping from the sky.
Nuff said…
> j2ee is losing mindshare and marketshare like a stone dropping from the sky.
Says who, I see a lot of high profile projects dumping Windows in general, not even looking at .Net and choosing J2EE on Linux/Unix. If anything my impression is J2EE is gaining more momentum then ever. As for claims that J2EE is too complex, this is just not true if have got at least half of brain or if you’re not a completely hopeless VB monkey. The only more or less complicated piece of J2EE is EJB’s, the rest is pretty straightforward and fairly simple especially if you use tools. And by the way, with IIS security holes coming out almost weekly .Net as a serious web service alternative is just not possible. I have already seen a contractor being basically laughed out of the room by a bunch of IT people for proposing an IIS based public web infrastructure, security goes a long way guys.
and then we can talk.
why C# is so popular? because of VS.NET
who is using C# in C#Builder for example? NOONE
The largest J2EE deployment in history is being done by IBM at eBay and it is just a complete nightmare. One area that has plagued the rollout from the start is the billing problems as partially described in this PCWorld article…..
http://www.pcworld.com/news/article/0,aid,102599,00.asp
eBay has claimed on their boards that this new software package went through extensive testing. Since the billing problems have been well known since February this year just the inability to fix the problems gives one cause for concern. But the rollout is far from complete and more problems continue to surface in all areas as the scope of the software’s operations increase. This you are all going to find is where JAVA’s famous scalability problems come in.
Sun has been trying to make JAVA work now for some 10 years and cannot even get it to run properly on their own hardware and OS. Now .NET is starting to outpace them !
Time to put JAVA to bed.
Good grief………
“and then we can talk.
why C# is so popular? because of VS.NET
who is using C# in C#Builder for example? NOON”
hahaha big joke….
ya c# is very popular, there are a lot of job ….
the majority of the job are for java an c++
.net is used by ms fan only
The PCWorld article you referenced
The Some EBay Users Seeing Double
91,000 sellers were double-billed last weekend, but the online auction giant isn’t offering any details.
Brian Sullivan, Computerworld
Thursday, July 11, 2002
Er! get up to date
> The largest J2EE deployment in history is being done by IBM at eBay and it is just a complete nightmare.
Even if eBay had some problems with the infrastructure and app server (WebSphere) in particular, J2EE is still the only thing that could do the job on that scale. Plus some ambigous WebSphere-related problems on some distinct case don’t mean that J2EE as a hole got problems. J2EE is still overwhelmingly the only choice on the medium to the high end of the enterprise scale. Anyplace where scalabilty, stability and security is of any concern .Net won’t be touched with a 10 foot pole.
Like it or not, but where I live, there is quite a few job openings for .NET development. There are some Java positions and very few C/C++. To me Java seems like a great platform, but nevertheless, a platform that is losing momentum.
I like the WORM aspect of Java, and the fact that I am not tied to one vendor in terms of development tools and server products. I also believe that C# is popular due to the IDE and not due to the language. But despite all its shortcomings, I have to say that the VS.NET IDE is a very productive one. For IDE development (Winforms and ASP.NET) its a killer. For backend stuff and scalability Java has a proven trackrecord.
But I really think that SUN needs to do something NOW, if they donยดt wanยดt to be crushed in the MS machine. That would be a huge loss for the IT community.
The article is from 2002!!!!!
Brian Sullivan, Computerworld
Thursday, July 11, 2002
In my experience, developing web service client applications, C# and .NET are significantly more productive than Java. Literally twice as fast developing the C# version of the (admittedly trivial) applications; they were faster at runtime, too, although there was a significant delay in the C# version during program startup (I think it was pulling the WSDL file from the server, while the Java version was static).
I have no idea what it’s like on the server end.
– chrish
Note from the second article.
Furthermore, Sun did not use a major commercial
application server platform such as IBM WebSphere or BEA WebLogic in their testing,
choosing instead to use Tomcat, a lightweight application server that does not support
core J2EE features such as EJBs
In most projects, you don’t need EJB’s or a major commercial application server. Only use them if you want to slow down performance and over complicate your project(okay, they are some cases it makes).
Lightweight combinations like hibernate and spring offer a higher performing and simplier development model than ejb, while still offer transaction managment throughout the application.
I’ve never understood the job argument. If you look at a job board and see more jobs available for Java/C++ than for C# you can look at it in two ways.
1. Lots of companies are using Java/C++ and are looking for the skilled labour, while less companies are using C#.
or
2. A lot of developers have started developing using C#, a lot of companies are using C#, these developers are getting these jobs, hence less job postings on the job boards. Less people are developing in Java/C++ so there’s more open job postings for these positions because there’s no one to fill them.
I’m a contractor, been a developer since 1989. I code on Mainframe/*nix/Windows have been on a .NET contract since February. Before that I was on a .NET contract for 1 1/2 years. Before that I was on another .NET project. Before that I was doing Java. My contract ends in August, then I’m coming aboard full time as a Java Web Services developer, but the entire front end and web app are written in .NET. There’s plenty of .NET positions out there; and a lot of the big companies are using it.
I have no idea what it’s like on the server end.
Well, you should try that part too!!
For the service side, its fairly trival to expose a method/class as a service. You just have to watch the types
uses/exposes.
With apache axis, you can expose and bunch of methods
as web service via a couple of lines in its server-config.wsdd. I would paste and example, but this forum strips html/xml tags.
I don’t think either .net or java webservice are really that hard.
For client sides –>
There are options for dynamically invoking either, or generating client stubs via a wdsl file. Eclipse has a couple plugins for stubs.
Another option that I recently came across, that seems very cool for java to java or .net to .net. is make you buisness service implement an interface. You client just has a reference to the interface.
Frameworks like (springframework) provide a facility to proxy the object that the client is using. This allows you to develop the same client that has no idea it is using a local implementation of the service, rmi, or a web service.
client does –>
InterfaceName service = ctx.get(“orderService”);
service.stuff
In the Spring applicationContext.xml you define a bean as such .
The example below (see url) lists the same service exported 4 different ways
A client should be able to use anyone of them without know a
difference.
see http://cvs.sourceforge.net/viewcvs.py/*checkout*/springframework/sp…
take a 2Gb 2chip server
limit java to 256Mb to use (exactly what M$ had done)
make a comarison…
I’d like M$ make test with .NET with 256Mb too…
Hehehe…so they’re still throwing dirt around eh? But in the REAL world, just take a look at the job listings and language popularity stats and you’ll see JAVA is way ahead of everything else, with C/C++ on par or slightly below it – C-sharp is NOWHERE to be found – so much for being a Java-killer ๐
Plus, Java is dominant in mobile devices, including in cars, smartcards and SIM cards, mobile cellphones, and even now in handhelds (e.g. Blackberry).
So, no matter what Sun/IBM/BEA/Oracle/MIcrosoft says, it’s clear JAVA is (or is becoming) the most ubiquitous platform in IT history!
Sorry to be blunt.. but look.. if you aren’t a developer in a corporate environment (and no, doing your own web site, your school club web site, or otherwise messing around) you don’t know and you can’t speak authoritatively.
If you haven’t developed applications in these environments, you don’t know, and you can’t speak authoritatively.
If you understand the Java J2EE environment and/or the MS .NET environment, you can start to know.. but should probably listen more than speak.
Both environments have many many tools that help speed development and streamline everything. Good IDE’s exist in both worlds, but in the Java world you see a much more heterogeneous mix of tools. That is a strength, and in fact, you tend to eventually see these tools ported to .NET.
Developing web services in Java can be trivial.. you don’t even have to compile the Java source code (using the Axis .jws deployment strategy..) to get it up and running. Building the infrastructure behind them can be easy or hard.. depending on what you want to show. MS wants to show it hard (EJB’s and full app servers) but thats certainly not required.. and not nearly as frequently used. More people are leaning to JDO style solutions with a variety of data abstraction layers.. with their corresponding speed.
Fundamentally both benchmarks are flawed.. the way to get a good one is to let each vendor bring in their own software on specified hardware and run it.. just like the other performance metrics on DBs and systems work. But.. the interesting thing is to compare both vendors best case solutions.. and use that knowledge for yourself when building or working on systems.
For anybody who is still saying “Java is Dead!”.. or perhaps “Sun is Dead!”.. or “.NET will never do anything”.. well.. go back up to the first or second paragraph. They all have their place and aren’t going away any time soon.
Have a look at ECLIPSE; it’s open source, has a lot of great plugins, GUI builder, etc. It’s a lot better than VS.NET IMHO. Cross platform also. Great tool…
I laugh everytime some deluded people say “java is dead”, since they’ve been saying this since the 1990s, and look what’s happened – Java is now probably the most ubiquitous platform in IT history, being dominant in servers, mobiles, and now even mounting another offensive on the desktop with the rise of Macs and Linux (and especially the java desktop, with China ordering several hundred million of these from sun) – there is even a real time Java environment that is being tested by the USA navy and probably deployed in aircraft carriers and such! Whouldda thought a language based on a garbage collector would enter such a niche!
Plus, Java is the foremost language in education – even in open source education in school!
http://weblogs.java.net/pub/wlg/1430
It’s GOOD to be a java developer, and especially an open source java developer! The most JOBS, the highest paying jobs, the respect of leading industries and management and many open source organizations (including apache, which is releasing geronimo, and open source J2EE app server), and the language of the present and future.
Why Java and open source?
There are more Java projects than PHP or Perl projects in sourceforge!
The largest open source organizations are Java-backers, including Apache, which is releasing an open source J2EE app server!
Java is the primary platform for teaching open source in schools!
Most of the reference implementations of Java (e.g. for servlets) are open source!
Enuff said!
Why not use python or ruby ?
I like the competition though. It’s good and is making sun think about open sourcing java .
Lets remember one thing C# is a TOOL FOR DEPENDENCY on microsoft server software packages.
Why is anyone surprised M$oft is giving away the C# ide.
I hope the competition lasts.
I don’t believe in a winner or loser here.
“Lets remember one thing C# is a TOOL FOR DEPENDENCY on microsoft server software packages.
”
lets remeber that c# is standardized at ECMA.
IIRC there is ISO standard proposal to.
“Why is anyone surprised M$oft is giving away the C# ide.
”
because overinvestment in sw industry MS has to drop prices,maybe?
“Java is the primary platform for teaching open source in schools! ”
I heard about teaching CS never about “teaching open source”.I alwyas thought that open source is matter of releasing not programming.
As far as i know java is not death , but c# is not bad at all.Nice designed enviroment where java could get some ideas what could be improved.
On the other hand c# profits from java open source community a lot. several well made OS projects in java was ported to c#.