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.
Some of us (Score:3, Insightful)
Not a good option during these bad economic times.
Re:The sad thing is... (Score:3, Insightful)
On a side note, I wish the 'net were never called the 'Information Superhighway.' That single analogous dubbing has spurred the acceptance of rhetoric in Congress that allows all sorts of regulation.
Re:The sad thing is... (Score:3, Interesting)
Realistically, though, we're talking about internet application development platforms here, not basic human rights. Being all high and mighty about not uing
Re:Some of us (Score:2, Insightful)
Ever wonder why MS is putting .NET ads on Slashdot?
Well, posts like these are the other shoe dropping.
Rest assured, many many many companies are evaluating MS technologies vs. OSS technologies for a number of good reasons; Security, reliability, scaleability, non lock-in, no subscription plans, etc.
For example, see the story posted on Slashdot just yesterday [slashdot.org] where the US DoD is advocating the use of FOSS (Free & Open Source Software). Read the report and the recommendations.
What's remarkable about this report is that it's written by Mitre and DISA (Defense Information Systems Administration), both very conservative groups when it comes to new technologies.
I'm posting anonymously because my employer has close ties with MS and after what happened to Bruce Perens for speaking his mind...
Re:Some of us (Score:2)
Hell, the TMC web site even says (paraphrasing here) that this doesn't mean J2EE is slower than
Don't jump to conclusions.
Re:Some of us (Score:3, Interesting)
As Microsoft stated with the first one: Before all of the anti-Microsoftarians (of which Slashdot offer a tremendous number) slam this, GO AHEAD AND MAKE A SUPER OPTIMIZED PET SHOP APPLICATION ON THE PLATFORM OF YOUR CHOICE. The Java community, in this case, seems amazingly capable of criticizing this review, while failing to offer alternative proof.
Re:Some of us (Score:3, Insightful)
It's an *example* app that demonstrats how to implement certain java features. They did not allow or ask anyone to make a new app they did it
themselves then asked MS to make a competing one.
Even if there exists a "UPER OPTIMIZED PET SHOP APPLICATION" it's doubtfull they would have used it and optimising the current app would kill it's usefullness as a teaching aid.
The whole comparison is completely bogus and it reminds me of someone comparing a ferrari with one of those trainer station wagons with random extra wiring the Canadian millitary used to use to train their mechanics.
Re:Some of us (Score:3, Informative)
Performance isn't most important (Score:4, Interesting)
Re:Performance isn't most important (Score:2, Insightful)
Don't get me wrong. I love high-level languages. Python is one of my favorite languages. However, I would not ever consider doing driver implementation or operating system work in python. Something must be said for low-level languages and their ability to relate directly to the hardware they are running on.
Re:Performance isn't most important (Score:2, Insightful)
Performance is an issue in enterprise applications. The difference between buying 50 servers and 100 servers matters.
Re:Performance isn't most important (Score:5, Insightful)
What you say is true on the desktop, but this comparison is between two server technologies. Desktops are fast enough these days for what we want to do with them, but servers are still often heavily overloaded. If you build a big n-tier web application, chances are it's for a commercial purpose, right? So your goal in life is to get more and more people to use that web application, so you can make more money and whatever whatever. If your application can't scale as far as you need it to, it's bad, bad. So performance is very important in situations where the size of the application user base needs to scale dependably.
Re:Performance isn't most important (Score:3, Insightful)
People on slashdot have some really, really odd ideas about what's expensive and what's not. Here's a clue: web servers are not expensive.
Re:Performance isn't most important (Score:3, Interesting)
I look forward to seeing what words you point into my mouth in your next response.
Re:Performance isn't most important (Score:3, Interesting)
Originally I said web servers aren't expensive because most performance problems can be solved by throwing hardware at them, which tends to be an appropriate solution for web-based applications, thus the current popularity of the 'rack of 1U webservers, and a fast db box' configuration, or some similar variant.
P.S. If you want somebody to refrain from referring to you as a fucking retard, try to engage in a debate, instead of just flinging shit around like a retarded monkey.
Re:Performance isn't most important (Score:4, Interesting)
Re:Performance isn't most important (Score:2, Funny)
Wait, let me get this straight (no pun intended) -- you're a gay man who says "performance" isn't important.
Christ, next thing you know you'll be saying that size doesn't matter!
Re:Performance isn't most important (Score:2)
By the way, there is nothing wrong with high-level languages, au contraire. Just use those with efficient [cons.org] native-code [ocaml.org] compilers [gnat.com]. (Objective C in its half-smalltalkness may be nice as well, but personally, I don't really like it.)
It's the query that matters (Score:5, Insightful)
If one of my pages takes 7 seconds to come up, I can almost guarentee that the query is 6.x seconds. For that reason, I agree, language speed isn't that critical to me. What matters is: How easy is it to write/maintain? Will the language be supported? Can we hire guys that know it? Is it hard to learn?
Re:Performance isn't most important (Score:4, Interesting)
Whether or not it _actually_ matters is a whole other ball of wax, but I contend it still does. We're not a big business by any stretch of the imagination, but we need 20 servers to handle the load we do (400-600 'requests' per secondwith each request resulting in anywhere from 2 to 4 additional connections made for each request generated)
You might try rewording: In the *majority* of cases where people are selecting platforms, performance is not always the #1 issue.
That might approach the truth, but to say performance only matters if it sucks assumes you can afford the hardware to meet your demand with room to spare on the first day you go live. In enterprise applcations (lots of customers) and high load applications (less customers but each customer generates tons of load - like an ad server), performance is _exactly_ where you're going to make or break your ability to supply the demand without buying the Noah's Ark of hardware.
Re:Performance isn't most important (Score:2)
Troll, troll, troll... I write server applications for living. Performance is absolutely critical to customers because it translates directly into money. Enterprise servers are usually running near peak thruput, making something to perform twice as fast means that the customer needs to spend just half the money (which is often hundreds of thousands of dollars) on their servers.
Re:Performance isn't most important (Score:5, Insightful)
However, when it comes to this particular benchmark, it has more to do with performance on a server somewhere handling thousands of simultaneous connections. Web applications, if you will. And in this particular case, a performance difference of 10% could mean a hundred users get locked out, and responsiveness to the others will be very bad.
If you ask me, it's one of the great mysteries of the computer industry why desktop apps are written in C/C++ and web apps are written in Java, Perl, or
That's the $15 million dollar question, now isn't it? We seem to optimizing for RAD and performance, rather than just performance. Perhaps we should rethink our priorities, move scripting languages onto the desktop, and compiled languages onto the server...
--
Daniel
Re:Performance isn't most important (Score:3, Informative)
J2EE is not a language.
Objective C is irrelevant in this comparison.
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".
J2EE (Score:3, Informative)
Hmmmm. (Score:4, Insightful)
I mean, "...excessive exception handling"? WTF?
This only underscores the by now expected knee-jerk reaction these types of pissing contests bring. There's always some expert who can refute every single point of the whitepaper, who in turns gets dissected by someone else ad nauseaum.
In the end it's never been about benchmarks or raw speed. It's about how productive you can be writing these applications, time to "market" and total cost. It doesn't matter if J2EE is 14.3% faster than .NET or viceversa.
Re:Hmmmm. (Score:2)
Of course, in this situation all other things are most definitely not equal. If you want to deploy your enterprise app using a non-Microsoft OS, or if you want to avoid licensing fees for app servers, Java is pretty much your only choice. (Unless you go with a different type of framework altogether, like PHP or something like that. In some cases that's okay.)
Re:Hmmmm. (Score:2)
And freedom, don't forget freedom.
Oh, wait. It has never been about that.
Paid for by MS (Score:4, Informative)
From second article.
Re:Paid for by MS (Score:3, Informative)
Re:Paid for by MS (FAQ is very very very telling) (Score:2)
> Does these results mean that J2EE is slower than
> No. The results mean that
LOL. First question in FAQ says "BTW, this has nothing to say about whether or not J2EE is faster than
Or, slightly reworded: "We published this report for free advertising in the hopes that most people wouldn't make it through to the FAQ, where we admit we're simply riding on the back of the popularity of the J2EE/.NET conflict."
Considering the amount of non-ideal conditions they recognize invalide the objectivity of the study (they list several in their FAQ), what possible other reason could they have had for releasing it other than to cash in on the ensuing flame wars?
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...
Reading is goood....mmmm kay (Score:5, Troll)
It's not a loss of face to admit in this particular architecture,
I don't understand why people instantly get defensive and point out conspiracies. They both kick ass, use which ever one makes you happy.
-malakai
Hot News Flash -- Java Slow! (Score:5, Funny)
Oh yeah, we are also shocked -- shocked! -- to find out that Microsoft engineers are capable of putting out a rigged demo.
These are not the benchmarks you're looking for. Move along.
Re:Hot News Flash -- Java Slow! (Score:4, Insightful)
I've done some fiddling of some rough benchmarks myself..
This isn't really a
It's not a BAD way to do it. Just as CORBA isn't really a BAD way to handle RPC calls. It's just rather large and has significant overhead.
The numbers presented actually look pretty much on par, although my local fiddling only went to the extent of using 10 clients connected to the network to beat on the machines..
Re:Hot News Flash -- Java Slow! (Score:3, Interesting)
Of course Microsoft will be happy about the results, but think of it this way: Why would Microsoft have spent the money to build
So let me ask you this: Where is the comparison that shows Java being faster?
Let me also ask you: Who would decide not to use Stored Procedures if they were available?
Re:Hot News Flash -- Java Slow! (Score:3, Interesting)
The other part that seems rigged, but less directly attributable to MicroSoft, is what sounds like really poorly coded J2EE. I'd really never consider paying TMC for any services, given their claim of expertise and the mistakes made in "fully optimizing" the J2EE version of the app.
Quel suprise (Score:5, Insightful)
One of the more interesting lines of commentary attached to the original article on TheServerSide was that "the community" should all band together and build a version of the Pet Shop which'd run faster in fewer LOC and on less hardware than the .Net equivalent while keeping to Sun's recommended best practices, thereby demonstrating the overarching superiority of Java and open source (or something like that.
Or, alternatively, they could choose to sit with their heads in the sand and spread fud about how Microsoft bought The Middleware Company, while waiting for the .Net train to run them over.
Sun shills, Microsoft shills, what's the difference?
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: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 ;-)
Re:Incompetance (Used old version of PetStore) (Score:3, Interesting)
Except that their "appserver B" - read IBM's feet-dragging WebSphere AS - doesn't support them yet. So they didn't use them for "appserver A" - read BEA WebLogic Server - either.
Rather, they should have changed the Java PetStore implementation to closer match the .Net version. By replacing entity beans with far simpler "data access objects" they would have removed that bottleneck.
Or used JBoss 3 + Tomcat 4 (+ Axis 1.0?) instead of WebSwear...
Any new EJB programmer would have used JDK 1.4 instead of JDK 1.3 for the tests.
Except that their "appserver B" - read IBM's feet-dragging WebSphere AS - probably doesn't run on it yet. And WLS 7.0 probably has "issues" with it.
Final Conclusion (Score:4, Funny)
NOT J2EE experts
but they
ARE MS shills.
Everybody knows "benchmarks lie" as the old cliche goes. It's just funny that a chest-thumping "enterprise software" consultancy would so blatantly pitch a relatively un-scientific benchmark as a serious study.
Re:Final Conclusion (Score:4, Insightful)
For God's sake, Sun - get a clue! Give the world a better official J2EE example!
The J2EE optimization rebuttal seemed awfully complicated to expect a new Java programmer to understand.
Nevermind benchmarks optimized by experts - average shops don't have such experts. Think about the lowest common denominator. I'd rather see a benchmark of how average systems perform when designed by novices as an indicator of how good the underlying technology is. If a system has to be designed by leading experts then it is not cost effective for the average shop and I would want no part of it. Object orientation be damned - just give me something that works and does not cost an arm and a leg to extend and maintain.
Re:Final Conclusion (Score:3, Interesting)
First Entity Beans were good - and now they are bad. What other surprises can we expect? Who should an average Java programmer believe?
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:Much more interesting - a leaner JPetStore (Score:2)
I think sun have got into a mess pushing EJB as the be-all and end-all of server side java coding. I dont know whether that was because they wanted to enable client server apps using the EJB api too, justify to customers the purchase of premium j2ee servers over free servlet engines, or encourage sales of multiway solaris boxes.
But because EJB is wierd, ugly and so limited, I dont think it is the right design for many apps. The fact that it can take weeks of 'tuning' the app server to get acceptable performance out of it is a fatal flaw in its own right. nobody has time to do that.
Price/Performance page 25 says it all (Score:5, Insightful)
You can probably get much higher performance out of the J2EE stuff at the very top end, but only by running it on the 'big iron' that most companies can't afford and even fewer actually need.
M$ has a lot of problems, but this
Re:Price/Performance page 25 says it all (Score:5, Insightful)
NB, after development costs, the biggest expenses in my last projects were operational costs and hardware depreciation. This review didnt look at either of those, but everyone I know is scared of IIS management, so its operational cost is probably higher.
Re:Price/Performance page 25 says it all (Score:2)
The companies I've worked for have never had much trouble with IIS (maybe just lucky if you believe what you hear around this site) and they are definitely cheaper labor.
Starting off strong (Score:3, Funny)
Unfortunately, the article contains both spelling errors, grammatical errors, and errors of style.
Re:Starting off strong - Future slashdot editor (Score:5, Funny)
Great! The the author is sufficiently qualified to become a slashdot editor.
hmm... (Score:3, Funny)
J2EE, EJBs vs "JSPs" (Score:3, Interesting)
EJB makes it easier to have physically seperate tiers, and adds enough systems-needed overhead that you'll probably need 'em...
Benchmarks for tasks with N-number of variables... (Score:4, Interesting)
Yeah, but... (Score:5, Insightful)
So is it that The Middleware Company will just claim that the winner is the one that paid them? Or is it that .NET really is the performance winner whereas J2EE wins most of the other awards?
And why is it surprising that the performance winner is the one whose entire platform, from the operating system to the SQL server to the framework, is made by a single vendor? Of course it will perform better - they're all in the same building (or complex in this case).
Re:Yeah, but... (Score:3, Funny)
Lies, damned lies (Score:3, Interesting)
Furthermore, if Yahoo moves from C++ to PHP for the majority of their Web applications, I think that's saying something. Perhaps J2EE and
Maybe, except (Score:2)
As to the rest of the article, it seems as if only the hopelessly naive or people with an axe to grind will pay much attention to reports like this.
Couldn't Resist Though, Eh? (Score:3, Funny)
It didn't seem all that exciting, and we sort of ignored the story.
Maybe we could get a bunch of people to whip up a controversy about a benchmark whitepaper comparing performance of rcp and ftp.
Regus Reporting? (Score:3, Interesting)
Sheesh (Score:5, Insightful)
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.
So let me get this straight. A report comes out (that looked pretty fair to my eyes) where .Net kicks the crap out of Java, but that's not interesting. But as soon as someone puts out a (pretty silly IMO) refutation of said report it's suddenly interesting?
Yeah, yeah, I know -- it's Michael and it's Slashdot. But sheesh, come on.
Anyway, is anyone really surprised that .Net is going to be much faster than Java? It would be hard to make it slower, and if I were in charge of the .Net project, that would be one of the first issues I would address if I was making a competitor to Java.
I have no problem with microsoft's coders.. (Score:5, Insightful)
I have deployed two different production systems off of
J2EE is a horrific mess in many ways. The abstractions don't map well to real world concerns (for example, a bean represents a row, not a business object, unless your business object is a row, in which case you are probably over exposed to changes in the database), and the API's for SOAP et all are poor (unless you use Glue which rocks beyond anything else I have seen in Java).
Java's basic trade offs are part of the problem. Remember that Java was created for the purpose of running on embeded systems. This makes very simple tradeoffs (for example, optimizing for size in the bytecode instead of performance) that are not real good for large applications.
Finally, Java is object oriented.
Now, if Microsoft's business guys would just follow suit.
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.
Show me the money (Score:2)
Benchmarks, while to completely useless, are almost completely useless.
I don't recall anyone EVER claiming that Java's execution speed kicks ass... I don't think execution speed was ever a big selling point for Java.
Apples and Oranges (Score:5, Insightful)
The original J2EE version of the Petstore application was meant as an EDUCATIONAL example for those new to J2EE. As such, it was not built with performance in mind, but rather was built with the mentality "How can we use every aspect of J2EE to implement this incredibly simple problem." No one in their right mind would use J2EE or EJBs to implement the Petstore app. It would be overkill in the extreme. And even if the J2EE version of the Petstore app was modified for performance, it's unlikely you'll be able to beat something that was built from the ground up with performance issues in mind. I'm sure this was the case with the .NET version.
If you want a good comparison of a .NET and Java version of the Petstore app, check out JPetstore [ibatis.com] which was built from the ground up with simplicity and performance as high priorities. Hopefully in the upcoming weeks we'll see some good benchmarks using this version instead of the J2EE version.
Abstraction at nauseum (Score:2, Interesting)
performance of programmers (Score:3, Interesting)
Therefore, it is much better to compare how both technologies help individual programmers as well as their teams to work faster and to produce a code with less errors (debugging time and QA resources). That would be a function of how API is structured, how concerns could be separated, how customizable code can be and will programmers tend to hardcode "business logic" riles.
Does anyone know such comparison of J2EE and .NET?
well duh (Score:4, Insightful)
Besides that, look at the line comparison in code - the .NET version was 11,000 lines and the Java version was about 2600 lines. Clearly what happened here is that the Microsofties decided to be smart about it and write all their functions inline - not pretty but fast. Whereas the Java coders invoked class after class after class - which looks better but all the instantiations and memory allocations of classes are a big performance hit.
Why not just take an Intel chip architect and tell them to come up with something in byte code, I'll bet it'll knock the crap out of everything else!
The point is, if you created the technology, of course you're going to be able to make it faster because of your intimate knowledge. Unfortunately, I didn't create
Here are the reasons why this comparsion is BS (Score:5, Insightful)
a little history of pet fight.
the petstore was originally a demo application written by sun. it was a tutorial tool to demo how to use some new j2ee technologies, some best
practices and good design patterns, a 101 course for j2ee. Nothing involved to run as a real world applicaiton or optimazed for that.
then came the MS petstore for
Since it is a marketing trick targeted to nono technical managers, j2ee camp reacted by their own performance petstore, Oracle has their own version
running under oracle app server and db. I can not remember exactly the figure of the result, but it is at least 10 times faster than the
MS lost this round, they must have thought very hard for a while, now we have this new report.
The report published by TMC, the company has a web site theServerSide.com which has very high reputation in java community. MS obviously put a big money in the boss's hand and forced the report to be published. Some tricks they used now:
1. a brand new beta version of
2. using Wintel machine for
and Oracle changed their priority i think.)
3. using extensive cache for
care about the speed. )
4. MS invited to tune their application VS IBM, BEA, SUN have zero idea of this project.
5. running db and app server in same machine. (J2ee is designed for distributed computing, that is why a high overhead for EJB technology etc)
6. trying to give a impression that TSS j2ee experts joined this competation, but the fact is none of them involed. so they just fighted with a dummy made by themself.
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
Thought it was illegal. (Score:3, Flamebait)
Not exciting? (Score:3, Insightful)
Uhhh, why is it suddenly newsworthy? (Score:3, Insightful)
Error rates (Score:3, Interesting)
Incidentally, all this stuff was run on Windows 2000. Somebody should try it on Linux.
I'm just waiting. (Score:3, Interesting)
It's even more convincing in reading the article posted in the link (the "review" that is). Basically it was bringing up how the lines of code count was not correct because J2EE could have done a better job. Bah, that's a silly argument. LOC can't just be brushed off because it really does have something to do with the cost. More lines of code isn't just for "lazy programmers", it's also a factor when you have to think about MAINTAINING that code.
However, I do buy the argument about not using the "latest and greatest" J2EE. So, I get back to my original point.. I'm just waiting for the next benchmark.
So since the author complains about the PetStore app as being such a bad design, how about coming up with a new one and then comparing those? It seems to me like, no matter what, the author of the article doesn't believe
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.
They used BMP (Score:5, Insightful)
Anyway, such a comparison is flawed from the start. Bench suites should be developed by independent 3rd parties, or consortiums like SPEC and NOT by vendors.
I actually don't find the results surprising. Microsoft's pet store is heavily optimized for an app server/SQL server; the standard EJB pet store should work with minimal tweaking on any EJB-compliant app server / SQL server pair.
The Raven
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.
The Java PetStore was never a benchmark (Score:4, Interesting)
Here's the basic story.
Once upon a time, Sun wrote a sample application, called PetStore, as a demonstration of various capabilities of the J2EE platform, and various techniques that might be helpful when writing J2EE applications. As such, it was deliberately over-engineered. A tiny shopping site doesn't need all the techniques they threw at it, it was just a context in which to deliver examples of coding pratices that might be useful in other situations. It was example code.
Speed wasn't a goal. Keeping the LOC low was counter-productive to an application which is basically an example of different coding techniques.
Microsoft saw this, and realised they had a cheap marketing opportunity. By rewriting the Pet Store in .NET, with completely different goals (speed and low LOC), they could score points just by issuing press releases. It's the marketing equivalent of saying "Hey! Our car is smaller and faster than your truck!" It's true, but meaningless.
No matter that it was an apples to oranges comparison. No matter that the Pet Store could be rewritten in Java [ibatis.com] using Open Source frameworks with about the same number of LOC by one guy in his spare time. This is marketing, not reality.
Charles Miller
Re:Save your time (Score:3, Insightful)
This isn't some sort of a 'I can do that task in *3* lines of code, Jack!' contest..
Re:Save your time (Score:2)
It does correlate fairly well with programmer productivity however.
Re:Save your time (Score:5, Insightful)
Now if we come up with the same solution, but I just type faster, so i have 1000 lines done, and you have 500 lines done, who is more productive?
Performance of a developer should be measured in (features implemented - bugs found)/time * some_constant_for_how_maintainable_the_code_is
anything else, and you are lying to yourself.
Re:Save your time (Score:3, Insightful)
Now if we come up with the same solution, but I just type faster, so i have 1000 lines done, and you have 500 lines done, who is more productive?
Performance of a developer should be measured in (features implemented - bugs found)/time * some_constant_for_how_maintainable_the_code_is
anything else, and you are lying to yourself.
I've said it here before and I'll likely say it again. Lines of code is an absurd measure of anything. It means nothing. A 1000 line source file can be more "elegant" and more readable than a 500 line source file and visa-versa.
And as for your typing speed comment. Anybody who thinks that even 5% of programming is typing the code in has a lot to learn. Good programming is design, documentation, testing, and refactoring. Typing in code should be a relatively small part of your job as a programmer. If it's not, most likely you're doing something wrong. If you're worried about your typing speed, you're doing something wrong. If you can tell me how many lines are in a single source file you've created without checking, you're probably doing something wrong.
Re:Save your time (Score:2)
Re:Save your time (Score:3, Informative)
Lines of code has nothing to do with reliability? (Score:2)
Taken as a sole measure I would agree, LOC counts must be considered strictly in context with a number of factors: proper exception handling, feature implementation, platform constraints and requirements, chosen language
But all else being equal, and given equally "correct" implementations -- that is, two sample given implementations work equally well and according to requirements -- lines of code *can* be a valid statistic. Context is the key.
Fact is, if you've got one "correct" implementation -- and I'll grant that correctness could be subject to debate in this instance -- and it takes 14,000 lines of code and you've got another that takes 2,000
LOC counts have been used in many, many code studies because they do represent a statistical measure of relative difficulty in implementation in certain respects.
Re:Save your time (Score:3, Insightful)
What's more scalable an application which is 7 times larger than it's counterpart? An application that new-to-the-project developers aren't afraid of because it's some big huge pile of code that takes countless hours to become familiar with.
How about which application is more reliable. Is the one that is 7 times the size going to be more reliable and be easier to fix bugs.
And our old friend ease of use. Let's see we have here 2 applications and one is 7 times the size as the other, which one will be the easiest and most fun for people to poke with a stick to fix all those annoying problems useability invariably comes up with.
Now of course the 14000 lines in the
Writing efficient intelligent code is the way to go, not Microsoft's write tons of shit code and hope for the best mentality towards the development process. I am talking out of my ass a bit here, but I think I make sense - or do I?
Peace
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:Developers, developers, developers! (Score:3, Insightful)
This is about being able to replace your programmers easily if one of them is a pompous ass, being able to move the code base around and adapt it quickly if your OS provider is a pompous ass, and being able to keep maintenance costs down because the overal structure is smaller.
Bullshit. Organization, design and documentation of code has everything to do with ease of programmer replacement, maintenance costs, and flexibility. It's about quality, not quantity. I can have 50,000 lines of code that are split into well concieved, well documented modules that conform to accepted standards. A new programmer can come on board and maintain this code easily. I can have 3000 lines of crap code that they guy who wrote it can't maintain a year later.
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:Save your time (Score:2, Informative)
Re:Save your time (Score:3, Interesting)
You've got it reversed. (Score:5, Interesting)
Did you intentionally reverse the figures? The
Why not go to the source [middleware-company.com] and draw your own conclusion. I looked at the report and it seemed more than fair. This was a straight up "best practices vs. best practices" competition, using Sun's recommended coding standards.
It is helpful to note that this is the second such test that The Middleware Company performed. The Java folks squawked because the
In my opinion you can pin the blame squarely on EJB's. They are bloated, the environments are a royal pain to configure, and they are S-L-O-W. Sun recommends that people use them, so it's totally fair that it was used against them in this comparison.
Hate Microsoft if you want (I do), but you can't wear blinders and ignore the competition. J2EE blows. Get over it.
Re:J2EE vs. .Net (Score:2)
Re:J2EE vs. .Net (Score:2)
php,perl == Interpreted
Re:Infringement.... (Score:2)
Re:Infringement.... (Score:2, Informative)
Re:Infringement.... (Score:2)
Re:.NET is a lot faster (Score:3, Funny)
plenty of benchmarks on http://dotnetguru.org/
Yeah, I see that... from the URL.
Re:Are there any reviews that show the opposite? (Score:4, Interesting)
http://otn.oracle.com/tech/java/oc4j/pdf/9ias_n
In Oracle's study, they achieved results that were as much as 22x faster than