Another J2EE vs .NET Performance Comparison 533
Starting yesterday, we received a bunch of story submissions about a
performance comparison between J2EE and .Net. It didn't seem all that exciting, and we sort of ignored the story. But as usual, it appears that some people take issue with the methodology and conclusions.
J2EE (Score:3, Informative)
Paid for by MS (Score:4, Informative)
From second article.
Much more interesting - a leaner JPetStore (Score:5, Informative)
jPetStore [ibatis.com] is worth checking out. These people decided that the J2EE pet store is way too complex, which I'm inclined to agree with. They produced, using Jakarta Struts, a Java pet store web application that is much leaner. It's comparable in size to the .NET pet store but better in several ways - there's no SQL embedded in the code, there's no HTML embedded in the database, no code was automatically generated, and it's MVC-based.
I've always thought that Enterprise Java Beans are overengineering to the extreme. It's nice to have something to back that up with now. There's no question in my mind that this JPetStore beats out both the original J2EE one and the .NET one in maintainability.
They didn't do any benchmarks - performance wasn't what they were going for - but it would be interesting to see some. I'd be inclined to believe this simpler approach would also have much better performance than J2EE.
Re:Paid for by MS (Score:3, Informative)
Re:Save your time (Score:5, Informative)
With the .NET Pet Shop 2.0 implementation, Microsoft has done some further
optimizations to reduce its overall line count, while also extending the application with
new features for distributed transactions and Web Services. The new .NET Pet Shop 2.0
contains a total of 2,096 lines of C# code (the 1.5 version had a total of 3,484 lines of
code, a 40% reduction).
Re:Paid for by MS (Score:2, Informative)
"Several independent sources have now confirmed that The Middleware Company was indeed paid by Microsoft to conduct this report."
My instant reaction was... "Well DUH!" At least they didn't make up someone who used that as their reason for switching...
One JavaBot's Reply (Score:5, Informative)
No Local Interfaces were used, so it wasn't a truely 'apples-to-apples' comparison. Local Interfaces make a huge difference (although, they claim to of not seen one in another container).
They used the latest
I'm not going to tell you J2EE is faster, but I am going to say that they did a lot of apples-to-oranges comparisons and not note them (except in the faq).
Re:Save your time (Score:3, Informative)
Re:Save your time (Score:2, Informative)
Re:Infringement.... (Score:2, Informative)
Re:One JavaBot's Reply (Score:2, Informative)
. And, as the FAQ you've so kindly linked to points out, any competent app server will make cross-component calls between components in the same process as in-process calls - thereby negating the main marketectural advantage of local interfaces. Like TMC say, they've done the most apples-to-apples comparison they can, but, again as they point out, there are always going to be problems where the zealots can point out the differences.
But hey, I'm a C++Bot so I can play disinterested observer. But I will tell you that C++ would be faster, safe in the knowledge that no-one's going to be going to the effort to put that benchmark together ;-)
was MS involved? (Score:4, Informative)
From their FAQ [middleware-company.com] about the benchmark..
Was Microsoft involved in this, did they fund this, where were the tests done?
Yes, Microsoft was certainly involved, as the paper describes. The Middleware Company approached Microsoft regarding performing such an experiment. Microsoft provided the lab, which was located in Seattle, funded the setup costs, and reimbursed us for expenses, including travel expenses. The Middleware Company invested several man-months in this project for which it received no compensation. The activity took much long than we expected, and at various points, we also hired independent consultants experienced in appservers A and B to tune them or provide recommendations, at our own expense. The parameters of the lab were under the control of TMC. TMC controlled the testing process. TMC stated up front that TMC would write a report about the real results, no matter what they were. These experiments are time-consuming, and require resources. Without permission and some support from Microsoft, we would not have been able to conduct the experiment. We would like to have conducted many more experiments than we did, and hope to in the future. TMC stands behind the results of the tests that were conducted.
Does the fact that Microsoft gave permission for this experiment and provided some support, invalidate the results?
That is for you to decide. TMC stands behind the results of the tests that were conducted. Should there be other such experiments to be arranged in the future, we will not be able to do them without some assistance with the lab, setup, expenses, and we would hope for more support than Microsoft provided us with for this experiment.
Re:Some of us (Score:2, Informative)
Why don't you read the article, and then why don't you fuck off.
Re:I have no problem with microsoft's coders.. (Score:3, Informative)
I'm assuming that you are referring to Entity EJBs, as a 'bean' is basically any java object with a null constructor (and usually setter and getter methods), and can represent anything you want. But even for Entity EJBs, it's only true if you use CMP (container managed persistence). If you implement BMP (bean managed persistence) you can use them to represent any kind of business entity. We are currently implementing an entity bean that represents data that has been pulled off a mainframe (not an RDBMS in sight), with the EJB/container providing the cacheing/security/pooling etc for us.
Re:Here are the reasons why this comparsion is BS (Score:3, Informative)
http://www2.theserverside.com/resources/article.j
http://www.oracle.com/features/9i/index.html?9ias
The latter gives a measurement of 538ms response time for 600 users on the Petshop. Since the Middleware Company PDF lists response time as 14ms for "J2EE AppServer A" and 10ms for
Did no one read the other article linked to? (Score:5, Informative)
The next thing they did is exclude JBoss, one of the most popular J2EE servers. It's open source, and easy to use. One can only conclude the intentionally left it out because
After reading that TMC had taken money from MS, the only conclusion that I could come up with is that it was rigged. No real J2EE expert would ever make those mistakes. Even free E-Books on TSS will tell you not to make mistakes like that.
Basically, this really hurts the Java community to see TMC take stabs at J2EE after all it's put into it. Either that or we are to conclude that TMC is unfit for the J2EE educational services they offer. Either way, they may have helped
Anyone that doesn't know that much about J2EE or doesn't take a look at the code will think this is like the florida recount fiasco, but it really is a legitamit claim that this version of the petstore was really written by A) a monkey, or B) a MS fundee.
Re:Some of us (Score:3, Informative)
Re:Save your time (Score:4, Informative)
I'm extremely curious, as many people have mis-quoted this figure. Where did you get this information? Is there another article that quotes this incorrectly?
The
So much for Microsoft's write tons of shit code and hope for the best mentality
Re:Performance isn't most important (Score:3, Informative)
That's funny because my laptop is a PIII 1.2GHz and I use JBuilder 6 (considered to be one of the slower java IDE's) every day for java development. I thought it was usable but I guess all the applications I've written with it don't actually exist. Damn, I guess the last year of my life has been a figment of my imagination...
I'm not arguing that java and swing perform as well as native code in GUI environments. However, they've come a long way and they are clearly "usable". I'd even venture to say that the performance is "acceptable". Coupled with the fact that the applications can run on multiple operating systems without so much as recompiling the source, I might even call it "useful".
Re:Performance isn't most important (Score:3, Informative)
J2EE is not a language.
Objective C is irrelevant in this comparison.