Slashdot Mirror


Another J2EE vs .NET Performance Comparison

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.

480 comments

  1. Some of us by Anonymous Coward · · Score: 3, Insightful

    Some of us are not in a position to dictate policy. Love Linux or not, some of us will have to use .Net or look for another job.

    Not a good option during these bad economic times.

    1. Re:Some of us by wmspringer · · Score: 1

      I suppose there's always the possibility of some people actually liking .Net ;-)

      I haven't used it myself, but I caught part of a presentation Microsoft was giving about it (free pizza! ;-)) and it looked like it had its uses.

      Although, I shouldn't talk...I like doing my programming in linux or java under a simple text editor :-)

    2. Re:Some of us by Anonymous Coward · · Score: 0

      I like doing my programming in linux

      you mean C, Perl, Python, Ruby, PHP

      Linux is just the kernel!

    3. Re:Some of us by Neumann · · Score: 0, Flamebait

      This isnt about who dictates policy. This is about a company lie^H^H^H misrepresenting (either intentionally or unintentionally) the capabilities of a product. In other industries this is called "false advertising" and is against the law, but the tech industry doesnt seem to have to follow rules that other industries do.

    4. Re:Some of us by Anonymous Coward · · Score: 2, Insightful
      Astroturfing.

      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 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...

    5. Re:Some of us by Anonymous Coward · · Score: 0

      you mean GNU/C, GNU/Perl, GNU/Ruby, GNU/PHP

      haha hopefully all the morons who try to make this crappy joke will see this post and realize it's already been made

      ITS NOT FUNNY PEOPLE

    6. Re:Some of us by Twirlip+of+the+Mists · · Score: 2

      Did you read either of the articles? Nobody lied. At worst, some of the stuff TMC said is open for interpretation and debate. There's no clear evidence that anybody deliberately misrepresented the facts.

      Hell, the TMC web site even says (paraphrasing here) that this doesn't mean J2EE is slower than .NET. It just means J2EE was slower than .NET in this case.

      Don't jump to conclusions.

      --

      I write in my journal
    7. Re:Some of us by Anonymous Coward · · Score: 0

      i'm not the guy that you responded to...but i'm sitting here running windows xp..wondering if you read the same article that everyone else did.

      the article CLEARLY STATES that TMC should seriously be called to task....and TMCs credibility should be questioned.

      why don't you fuck off.

      and read the article by the way.

    8. Re:Some of us by Lumpy · · Score: 2, Insightful

      but if you are in a position to influence the decisions you should have already been doing so.

      i am a lowly technician/specalist that cover's only 5 offices.. Yes I am able to influence infrastructure decisions because of two main factors...

      1- I learned Suit speak.. talk in numbers, money... grubby ol' money is what they want to hear... that's it.. show them savings, increased performance and increased revinue...

      2- if you open your mouth then take ownership of it... If something blows up, stand up and say "My fault! it was my decision!" Many of you think "Ohhh I'll get fired instantly!!!" and that is only true if your boss is a complete moron and idiot. any employee that takes ownership of their work and will admit mistakes needs to be rewarded... I have been, with 2 promotions because of it. (Failures promoted me!)

      i have no problem swaying corperate policy.. just start working on your sales skills as that is all it really is... sales.... can you outsell the microfot rep? I sure can.

      --
      Do not look at laser with remaining good eye.
    9. Re:Some of us by Twirlip+of+the+Mists · · Score: 2, Informative

      Yes, the article does clearly state that TMC should be called to task... but then it fails to give any good reason for it. Every criticism of TMC's methodology is a debatable one. They point out, for example, that the LOC comparison is unfair, but then they speak only in vague terms about "excessive exception handling" to explain why.

      Why don't you read the article, and then why don't you fuck off.

      --

      I write in my journal
    10. Re:Some of us by MAXOMENOS · · Score: 2

      Speaking as a Linux lover, I don't mind using .NET. In fact, I would encourage more people to write C# code, and to test it against Mono. Then report any bugs and/or contribute new classes.

    11. Re:Some of us by pVoid · · Score: 1

      You know, the world isn't as black and white as people make it either: for example I'm a big fan of COM, because believe it or not, it came from the same place CORBA did (via TPC etc), so I'm a big Moft fan because of that. But seeing .NET invade the windows world makes me sad...

      The evil is trends... companies are just a conduit for that evil, not the actual source. People - business people just want trendy buzz words to sell. The concept of product maturity means nothing to these people... if anything, it has a negative connotation (ie. archaic).

    12. Re:Some of us by Anonymous Coward · · Score: 0

      speaking as a liberal democrat...i encourage everyone to buy firearms, show potential abortionist the error of their ways, frown upon welfare, vote to reinstate school prayer, and hate affirmative action.

    13. Re:Some of us by juan2074 · · Score: 1, Funny
      1- I learned Suit speak.. talk in numbers, money... grubby ol' money is what they want to hear... that's it.. show them savings, increased performance and increased revinue...

      But if you send e-mail or write it in a report, please learn how to spell revenue. Even suits might notice the misspelling.

    14. Re:Some of us by Anonymous Coward · · Score: 0

      screw .Net. We're 100% open source where I work.

    15. Re:Some of us by Anonymous Coward · · Score: 0

      It's wimps like you that make life miserable for the rest of us. If I had had the same attitude, we wouldn't be using linux on the desktop at my company, we probably would be using .NET instead of java (the lesser of the two evils IMO) and we would be using websphere instead of jboss.

      I wasn't in a position to dictate policy either, but I was in a position to explain why choosing microsoft was a bad idea. I did point out how microsofts lisencing policy was getting more unacceptable. I explained that the J2EE standard was more important than any single vendor. I showed why taking a more open approach was not just good for us, but gave demonstrable benefits to our customers also. If the people I was explaining to didn't want to hear (and thankfully they did) then I would have _wanted_ to get another job. How can anyone be happy supporting (albeit indirectly) something they so strongly disagree with?

      Blaming the economy is such an easy excuse for basically doing nothing because it's easier to keep your compfortable job with your regular paycheck. Blaming the economy and hard times comes second on my list of pathetic excuses for selling out. Number one is the old "kids to feed" and "family to look after" bullshit.

      Please, people. This isn't meant to be a personal attack, or a flamebait. I just get genuinely upset when I see people selling out and openly allowing themselves to be controlled for the benefit of someone they don't even like.

    16. Re:Some of us by yukster · · Score: 1

      Ever wonder why MS is putting .NET ads on Slashdot?

      heh, heh, that's funny, cuz when I went to the discussion of this article I got the MS Visual Studio .Net ad with the "webcam" of a "coder hard at work" and his reaction after he eliminated "50,000 lines of legacy code." Hard to believe that's not intentional...

    17. Re:Some of us by Anonymous Coward · · Score: 0

      This report has been created by M$ since .Net cannot beat Java now M$ is buying companies to fabricate report I have looked at Java code it looked like it was done by a VB coder there are more info on this in theserverside.com.

    18. Re:Some of us by Jeppe+Salvesen · · Score: 2

      I'll find my new job in a governmnent position where I can use technology I care about and will be allowed to contribute to for not-so-great pay when I get fired for using Linux.

      <sidetrack>All platforms have limitations. It's just all about identifying and correcting those. That also goes for the current economic platform.</sidetrack>

      --

      Stop the brainwash

    19. Re:Some of us by Laura_007 · · Score: 3, Interesting

      Absolutely ridiculous. Note the fact that Slashdot ignored submissions up until the point that someone rebutted it, and then suddenly it had validity. Everytime you take a single study as proving something, without doing your own research, you risk falling for advertising (not "false advertising", but advertising. Car A might be a piece of junk, while Car B is superb, but if Car A has 20HP more you can be damn sure they'll mention that in their ads).

      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.

      --
      I am looking to accumulate friends. Please click on the circle and add me as a friend. Thanks!
    20. Re:Some of us by malfunct · · Score: 3, Informative

      You can use a simple text editor to edit .NET software and compile with a command line compiler (distributed with the .NET SDK).

      --

      "You can now flame me, I am full of love,"

    21. Re:Some of us by gmack · · Score: 3, Insightful

      That's the whole problem.. the pet shop example app was never designed to be efficiant or even used.

      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.

    22. Re:Some of us by Anonymous Coward · · Score: 0

      I dunno what part of MITRE you worked with/in but the parts I worked with had no problems at all investigating new technology...

    23. Re:Some of us by Anonymous Coward · · Score: 0

      sorry, hit submit too fast... not only do they investigate new technologies but they use them pretty fast too... we worked with pretty new embedded systems with a fairly new high-speed interconnect that wasn't the 'normal' ones that everybody sees.

    24. Re:Some of us by Anonymous Coward · · Score: 0

      Wow, I think this marks the first time I've placed someone on my foes list based solely on their nick...

    25. Re:Some of us by bbc22405 · · Score: 1
      Did you read either of the articles? Nobody lied.

      You ARE so completely full of shit! Quoting from Review of "The Petstore Revisited: J2EE vs .NET Application Server Performance Benchmark", one of the articles linked at the top, we find:
      [...]"As this review will show, the report is seriously flawed. It contains both errors, halftruths, and lies."
      [...]"As we can clearly see above, this isn't true."
      [...]"In the description of the code, however, we then find in the report that 'these middle-tier components access the database indirectly through a separate set of data access classes that encapsulate the data access logic'. Well now, THAT is clearly a lie."
      [...]"What is clear is that not only has the benchmark been conducted with seriously flawed code, but TMC has also on a number of points lied about the contents of said code and how it is supposed to perform."

      (bold added by me, because "Twirlip" is clearly reading-impaired). So, Rickard Oberg, the author of the second of the only two articles linked at the top, says that The Middleware Company lied. At worst, they did, in Microsofts favor, while being paid by Microsoft.

      Don't jump to conclusions.

      Jump to conclusions? No. But I think some of us should bother reaching conclusions, after bothering to actually read the articles.

    26. Re:Some of us by Laura_007 · · Score: 2, Interesting

      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.

      Sun has promoted the PetStore application as an example of Java best practices, and how to implement a Java ecommerce site. Whether they are really trying to make it so burdensome that extra Sun servers are required is beyond the point: It's an example of how Sun recommends that an ecommerce site be implemented in Java. It seems entirely relevant to me.

      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.

      You have got to be kidding.... If Sun, who hold their own responsibility for putting their platform in the best light (the whole BS on here as if Microsoft should go to great lengths to polish Sun's code is just hilarious), could make a optimized PetStore application, you don't think they would have? They would have it slathered all over the net, and every anti-Microsoftarian would be screaming it from the highest mountaintops (indeed, I'd wager that many of the same busily tried to make just such an example after the last hoopla...strange that we never heard from them). Mind you of course they'd put haughty disclaimers about how they'd whored down the design to Microsoft's standard, but they'd readily do it.

      --
      I am looking to accumulate friends. Please click on the circle and add me as a friend. Thanks!
    27. Re:Some of us by Anonymous Coward · · Score: 0

      Blah blah. Yes of course it's just the kernel. But you have to admit the number of high quality programming tools available for free on a computer running that linux kernel coupled with the programmer friendly nature of *nix and the money you save using cheap pc hardware kicks ass. So yeah, I like doing my programming on a linux kernel running computer too.

    28. Re:Some of us by Anonymous Coward · · Score: 0

      You rule. :)

    29. Re:Some of us by Anonymous Coward · · Score: 0
      Absolutely!

      Remember folks, women make excellent programmers, because they're almost as smart as men but type much faster!

    30. Re:Some of us by chown · · Score: 2, Insightful


      I suppose there's always the possibility of some people actually liking .Net ;-)



      As someone who's used .NET a bit, but not a whole lot, I have to say I'm not terribly impressed. Had it come out say... 6-7 years ago (in a somewhat stripped-down form, granted), then maybe. I'd have the anti-MS bias going, but at least it would have been semi-innovative.



      All it is is Java, except they're calling it "Visual Basic .NET", "Visual C++ .NET", and "Visual C# .NET". Oh, and while there's no technical basis for me disliking it "Visual C#" gets mad demerit points on name alone :)



      What I will give it, is that from a programmer's point of view, I think it's probably better than VS6, all things considered. There's a lot of new APIs to learn, most of which are at least a little more intuitive than the older ones (but that's not saying much).



      I still find the documentation to be abysmal. There certainly is a lot of it, but have you ever tried to FIND anything on MSDN? And the class reference pages, while being not terribly difficult to find, occaisionally neglect things such as what header file or library things live in - which is important if you're an old-fashioned C++ programmer like me. Not all of them are this way, but I have found a few.



      And of course, the main driving force behind all of this is XML Web Services. Which I am in fact, a big supporter of. And I think their integration with SOAP and UDDI is "neat", although it's still a little early for it to be entirely practical on a large scale, but that's the whole point of releasing .NET in the first place, isn't it? But heck, there are reference implementations (free ones, beer and speech) of this stuff in Java if you want it. Sure, it's not all automagically integrated into an IDE, but if you can't work outside of something like Visual Studio, then what kind of a programmer are you?



      In conclusion, why use .NET over Java? The main reason you'd write something in native Win32 over Java in the past is that Java would just run slower than a native Win32 app most of the time. So why would you want to compile your code to an M$ specific VM? At least if you wrote it in Java, it would be [mostly] platform-independent. .NET still seems to run faster than something in straight Java, but there is a difference, and I think it's reaching the point with computers getting as fast as they are, and with more and more people using "Alternative" OS's, that the benefit of having something run faster on Windows, but ONLY on windows is greatly diminished.



      Just my $0.02, anyway.

    31. Re:Some of us by yog · · Score: 2

      I read both articles and it seems to me that Rickard Öberg raised some valid objections. Your assertion that "At worst, some of the stuff TMC said is open for interpretation and debate" seems a bit understated.

      I would like to see him quantify his LOC statements; what is "a lot"? If the excessive code in the J2EE version accounts for at least 70% of the difference, then I'd say Middleware's LOC comparison is completely discredited. If it's only 10-20% then the comparison should stand.

      More importantly, if the J2EE version was coded poorly and the .NET version was coded well, then the tests are invalid, pure and simple. Indeed, if it's true that Microsoft paid Middleware Co. to do the work, that's enough reason to suspect bias. It's like asking a political candidate whom to vote for.

      --
      it's = "it is"; its = possessive. E.g., it's flapping its wings.
    32. Re:Some of us by Twirlip+of+the+Mists · · Score: 2

      Geez, dude, did you just use grep or something?

      Read the article a second time, critically this time. When he says things like "THAT is clearly a lie," do you really think he's literally correct? Of course he isn't. He says they "lied," but what he really means is, "I disagree with this interpretation of the facts."

      "Lie" has a very specific meaning: it means deliberately and knowingly saying something contrary to the truth. There's no evidence that anybody involved with this lied. There are different interpretations of the facts-- obviously-- but that's not the same as a lie.

      I reiterate my point: don't jump to conclusions. And I add a second point: use your brain as you read.

      --

      I write in my journal
    33. Re:Some of us by ray-auch · · Score: 2, Funny

      Well, sourcesafe stores everything in a proprietary database format, so a little bit of db corruption can easily eliminate "50,000 lines of legacy code". Unintentionally.

    34. Re:Some of us by Twirlip+of+the+Mists · · Score: 2

      Yes, some of his objections are certainly valid. If I ever implied that I think otherwise, then I misspoke. But saying "they lied!" as Neumann did is just going too far.

      --

      I write in my journal
    35. Re:Some of us by Anonymous Coward · · Score: 0

      But saying "they lied!" as Neumann did is just going too far.

      I disagree. If they say it is optimized for performance and it clearly has not been, that's either lying or incompetence.

      The major flaw of the comparison lies in the fact that the design methodologies used by the .NET team and the J2EE team were vastly different. Since TMC published this report they are responsible for its contents. If they publish something intentionally misleading that is no different than lying.

    36. Re:Some of us by Twirlip+of+the+Mists · · Score: 2

      It's going to be pretty difficult for you to prove that the TMC report was intentionally misleading. For that matter, it seems that the report itself isn't misleading at all. Some of the overly simplified conclusions that others have drawn from the report have been misleading, but I doubt that those were intentional either.

      In the absence of any evidence of intent, I remain unconvinced.

      --

      I write in my journal
    37. Re:Some of us by jazman_777 · · Score: 1
      Although, I shouldn't talk...I like doing my programming in linux or java under a simple text editor :-)

      Vi or emacs? Please support your position with irrefutable proof.

      --
      Slashdot: Failed Car Analogies. Amateur Lawyering. Anecdote Battles.
    38. Re:Some of us by wmspringer · · Score: 1

      heh, generally C++ typed under vi and compiled with gcc...

      No proof is irrefutable.

    39. Re:Some of us by dpt · · Score: 1

      GO AHEAD AND MAKE A SUPER OPTIMIZED PET SHOP APPLICATION ON THE PLATFORM OF YOUR CHOICE

      Okay, say my platform of choice is Solaris or HPUX. DotNet is not available there. DotNet loses. End of story.

    40. Re:Some of us by Anonymous Coward · · Score: 0

      I refute it thus! (stubs toe)

    41. Re:Some of us by Anonymous Coward · · Score: 0

      Why don't you just pull down your pants, bend over, and say "Billy boy, it's all yours".

    42. Re:Some of us by khuber · · Score: 1
      the whole BS on here as if Microsoft should go to great lengths to polish Sun's code is just hilarious

      First of all, this is TMC, not Microsoft.

      Secondly, you're twisting what was said into something anti-MS. But then you're coming off as a Microsoft church member, so maybe that's a requirement of the Holy EULA.

      _TMC_ said they optimized the code. They shouldn't have said it if it wasn't true, or they should have stated their lack of J2EE expertise. Their behavior was unethical if that is the case (I have still not made a conclusion, though I'd have to say that their expertise is in question).

      "This report contains the results of an extensive new series of benchmarks based on a new implementation of the Java Pet Store, developed by the Middleware Company. The new implementation has been extensively optimized for performance and scalability, and tested in two leading J2EE application servers. "

      -Kevin

    43. Re:Some of us by Anonymous Coward · · Score: 0

      I doubt it. The only thing high end about solaris/Sun and HPUX/HP is the price. A lowly intel box with .net will probably beat either one handily.

    44. Re:Some of us by Laura_007 · · Score: 1

      First of all, this is TMC, not Microsoft.

      Clearly many here on Slashdot are lumping them in together. However, the point is that quite a few posts have berated Microsoft for publishing any numbers that don't have optimization the way they see fit. In other words, with this crowd it's a situation that Microsoft just can't win at.

      _TMC_ said they optimized the code. They shouldn't have said it if it wasn't true, or they should have stated their lack of J2EE expertise. Their behavior was unethical if that is the case

      Was it faster than the PetStore that Sun provided? Yes? Then they optimized the code. The nuances of every subjective choice aside, if the Java community can do a better job, then shouldn't they just do it? This is not a big application: In the grands scheme of things it's quite tiny, so this isn't such a onerous and impossible task. Let's see some action rather than just talk. Then the Java community, which could fairly approach Sun for funding which I assure you they'd get, could set up a "www.j2eeVsdotnet.com" website and proclaim to the world how they did it in % less code, and it runs % faster. Of course, I truly don't think it's possible, but that's not stopping all you Java fanatics from pretending that it is.

      --
      I am looking to accumulate friends. Please click on the circle and add me as a friend. Thanks!
    45. Re:Some of us by khuber · · Score: 1
      Was it faster than the PetStore that Sun provided? Yes? Then they optimized the code.

      Maybe "extensively" means something different to you, but to me it means very optimized, possibly close to optimal. They weren't even using the current version of Sun's implementation (which is CMP based, btw)!

      Oracle already published benchmarks a long time ago, there is another pet store implementation, and so on. Your calls to put up or shut up aren't necessary because the Java community already did a long time ago. The onus is on the .NET community to prove why this immature platform should be able to copy J2EE, run only on a single OS platform, and proclaim itself as a competitor in the enterprise arena (where everyone doesn't run Windows!).

      -Kevin

    46. Re:Some of us by Anonymous Coward · · Score: 0

      www.ibatis.com

      It's been around for a while

    47. Re:Some of us by spongman · · Score: 2

      mathematical proofs are irrefutable. either that or they're incorrect. there's no debate, they're sttements of fact.

  2. Performance isn't most important by Faggot · · Score: 4, Interesting

    The beast most of us have sitting on our desk these days is so fast as to make language performance not such an issue. What should be focused on to support the future of computing is a well-typed, well-structured language to allow programmers to think at a higher level of abstraction than previously. That's why I love Mac's standardization of Objective C so much -- it allows high-level control of programs. Performance only matters if it sucks.

    --

    But what do I know. I'm just looking for anonymous gay sex.

    1. Re:Performance isn't most important by kpansky · · Score: 2, Insightful

      Actually languages still continue to matter a great deal even now. While computers are getting ever faster, do you really want to offset speed gains by using languages that are inefficient for many tasks?

      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.

      --

      --Kevin
    2. Re:Performance isn't most important by NitsujTPU · · Score: 2, Insightful

      Uhh...

      Performance is an issue in enterprise applications. The difference between buying 50 servers and 100 servers matters.

    3. Re:Performance isn't most important by Twirlip+of+the+Mists · · Score: 5, Insightful

      (Given your user name and other info, I expected a troll. Turns out you said something reasonable. Weird.)

      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.

      --

      I write in my journal
    4. Re:Performance isn't most important by PhysicsScholar · · Score: 2, Funny

      But what do I know. I'm just looking for anonymous gay sex.

      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!

      --

      Department of Physics and Atmospheric Science, Dalhousie University, Halifax, N.S., Canada, B3H 3J5
    5. Re:Performance isn't most important by MagPulse · · Score: 0, Troll

      Only the fastest Java desktop applications are usable on my PIII 1.2GHz, namely NetBeans and Eclipse, and that's because they don't use Swing. I wrote a Hello World app in C# and it took 2 seconds to start. Language performance will continue to count until we all have 3+ GHz machines.

    6. Re:Performance isn't most important by __past__ · · Score: 2
      The beast most of us have sitting on our desk these days is so fast as to make language performance not such an issue.
      You really think people upgrade their hardware so that lazy programmers can get away with sloppy inefficient coding? Not for me, thanks anyway.

      By the way, there is nothing wrong with high-level languages, au contraire. Just use those with efficient native-code compilers. (Objective C in its half-smalltalkness may be nice as well, but personally, I don't really like it.)

    7. Re:Performance isn't most important by Anonymous Coward · · Score: 0

      Yeah and was the .NET subsystem already loaded in memory? Microsoft has been known to load core components of programs for speed gains on the loading times. (Explorer/IExplorer for example)

    8. Re:Performance isn't most important by SirSlud · · Score: 4, Interesting

      Patently untrue. Microsoft is FUD-dy, not stupid. They wouldn't be touting performance reports if it didn't matter to purchasers and adopters.

      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) .. if we ever moved to .NET or J2EE, you can bet your ass performance would be a big issue in making our selection.

      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.

      --
      "Old man yells at systemd"
    9. Re:Performance isn't most important by targo · · Score: 2

      The beast most of us have sitting on our desk these days is so fast as to make language performance not such an issue

      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.

    10. Re:Performance isn't most important by fusiongyro · · Score: 5, Insightful

      I completely agree. In fact, that's why Python is my language of choice--I get more done faster, and unless I write a shitty algorithm I really don't notice a speed problem.

      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 .Net. After all, we've been admitting for years that scripting languages are OK unless you need the extra performance, and these guys do need that extra drop. So why aren't they writing these programs in C or C++? :) Clearly it isn't the libraries or types involved, since these are almost always available to C or C++ also.

      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

    11. Re:Performance isn't most important by greenrd · · Score: 2
      Only the fastest Java desktop applications are usable on my PIII 1.2GHz, namely NetBeans and Eclipse, and that's because they don't use Swing.

      Troll. Netbeans isn't one of the fastest Java apps, and it does use Swing.

      I wrote a Hello World app in C# and it took 2 seconds to start.

      If you don't know why Hello World is an invalid performance test, you have no business pronouncing on the relative efficiency of different platforms/languages.

    12. Re:Performance isn't most important by MagPulse · · Score: 1

      Yes, it was.

    13. Re:Performance isn't most important by mosch · · Score: 3, Insightful
      Web Servers tend not to be expensive machines. A decent software engineer is going to have a loaded cost of somewhere in the neighborhood of $150k/year, a good one will be more than that. If I can keep from hiring two of these people by buying $300,000 in hardware, I'm even money in year one, and saving $300k/year every year afterwards.

      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.

    14. Re:Performance isn't most important by Anonymous Coward · · Score: 0

      So why has it taken Sun so long to figure out that this what they should be doing. Why after all this time can't they load a single JVM into memory and let all the programs share it? As it stands, it is a memory HOG and totally unusable for any serious GUI applications.

    15. Re:Performance isn't most important by Anonymous Coward · · Score: 0

      Hey, look. Proof that only Faggots like Macs! :)

    16. Re:Performance isn't most important by maraist · · Score: 2

      Even if the core was loaded, there's still the JIT. But serious, I can't imagine that it would affect run-time performance.

      I'm no expert, but it's likely that many core components are written in C for the .NET server, where-as the java community shuns this (via native calls).

      -Michael

      --
      -Michael
    17. Re:Performance isn't most important by Twirlip+of+the+Mists · · Score: 2

      Dude, do you understand that we're not talking about serving up static web pages here? We're talking about enterprise applications. These sorts of things are (1) extremely important to the companies that run them, and (2) very hard to cluster-ize. If your bank uses an enterprise app for its online banking service, a failure in the app means lost revenue through customer loss. If an airline uses an enterprise app for online ticket sales, a failure in the app means lost revenue through lost ticket sales.

      The revenue generated-- directly or indirectly-- by the enterprise app will be far in excess of the costs associated with building it. Therefore, the reliability of the app once it's deployed is of paramount importance. If the app doesn't scale, or doesn't scale as well, the costs in lost revenue-- again, direct or indirect-- will be huge.

      You're just not thinking, here.

      --

      I write in my journal
    18. Re:Performance isn't most important by MagPulse · · Score: 0, Flamebait

      Mods: Here's a clue. The parent post is a troll, not mine. Netbeans is one of the fastest apps, there are not many out there. The fact that I was mistaken about it using Swing does not make me a troll.

      Hello World is a valid performance test for my application. I'm writing a small app that needs to start instantly, and I was testing with the .NET components loaded.

      The parent poster just criticized without saying anything constructive, I would not advice blindly following his recommendation.

    19. Re:Performance isn't most important by Anonymous Coward · · Score: 0

      Partly true, but what if we are talking about an enterprise-wide deployment of a web application? You could have hundreds or thousands of users then. Performance is a non-trivial issue for those situations. In my opinion, not enough stress and scalability testing is done before commrcialising software (and I speak as someone who works at a Software vendor), so sometimes performance is real sucky when it is used in the real world.

      The cost of web servers can become quite expensive if you have to buy dozens of them. Not to mention the TCO of large server sprawl.

    20. Re:Performance isn't most important by zephc · · Score: 2

      I second that! Python is my language of choice, and wxPython (with PythonCard or without) my preferred GUI API.

      Win32 and really almost any other C/C++ API (except maybe BeOS' app API) leaves a bad taste in my mouth. Too much manual mem management, and too many other low-level things that distract from what I actually WANT to do! (app-specific logic). Objective-C (except for the syntax) gets it about half right, but it still has its problems.

      Graphics in Java (AWT and/or Swing) is unacceptably slow. Not having a stndard cross-platform back-end like wxWindows (or even - gag - Tk), as native-code libs, is one of the areas where Java really dropped the ball.

      That .NET's GUI framework is just a frontend to Win32 is kind of cool (for speed and a stanadrd look-n-feel) but it's very much tied to Win32, and I'm guessing will be a beast to port to other platforms.

      Plus, I just LOVE the Python syntax and all the little other jems that make programming with it a joy - like how powerful dicts and lists and tuples are, how easy threading is... I could go on and on. Python has been my lang of choice for longer than any other language (I've only known C and C++ longer out of ignorance of other choices)

      --
      "I would say that 99 per cent of what my father has written about his own life is false." - L. Ron Hubbard Jr.
    21. Re:Performance isn't most important by maraist · · Score: 2

      Language performance is complex. While increasing overhead by a constant amount is perfectly acceptible (e.g. every aspect of the language takes between K and M times as long) (this could be due to extra conditional-checks to validate run-time-data such as null pointers, etc), it's not acceptible for languages to have larger big-O notational times. e.g. instead of O(k) you have O(n), O(nlog(n)) or worse O(n^2).

      In simple languages like C, you natively do efficient things (like variable manipulation, memory allocation (usually)), function calling, etc. But for example, in perl, method invocation is O(n) at best, and often involves dynamic memory allocation and thus can be O(nlog(n)). Note that this is JUST for invocation, to say nothing of what the function might try and do. It's effectively a constant operation in most other languages. Thus any tight loops really requires performance tuning possibly involving native libraries.

      The whole point of big-o analysis is to determine the scalability. O(n) inside an O(n^2) loop is O(m * n^2) which could approach O(n^3) in the worst case. Imagine a client-side email reader dealing with thouands of emails per mailbox. Your numbers of transactions become impossibly large and any arbitrary computer speed will not suffice.

      While I'm not up to speed on .NET, it facilitates C#, so I assume it handles struct-like data-structures. Java has heavy-weight data-structures, so it's much harder to write performant high data-volume-throughput algorithms efficiently (sometimes the JIT can make life happy at least).

      Since our processors are only about 2,000 times faster (VERY loosly speaking) than we were 20 years ago, but we're dealing with data-sets thousands of times larger (amplifying the effects of O(nlogn) and O(n^2)), I suggest that performance always has, and always will matter. Thus we should never blindly trade functionality for inherent performance reduction. There should be a valid argument for each instance.

      --
      -Michael
    22. Re:Performance isn't most important by pivo · · Score: 2

      I don't think he was advocating writing all code in higher level languages. There is a huge segment of coding projects being written today in languages that are lower level than necessary and this reduces productivity. No, you still don't write device drivers in Python, but you might really benefit from using a high level language for an enterprise application. Any extra hardware required to compensate for speed is trivial compared to the payoff of having the app and having it sooner and more robust.

    23. Re:Performance isn't most important by Delirium+Tremens · · Score: 1

      Whiner.

    24. Re:Performance isn't most important by mosch · · Score: 3, Interesting
      Could you try responding to points that I actually made? The fact of the matter is that servers, even db servers, aren't expensive compared to developer time. I can buy a mid-range SunFire 4810 for about the same financial cost as one or two man-years (a couple hundred grand). So if that 20 man development team can cut 2 weeks off of the project, but it'll require a SunFire 4810 to run afterwards, that's a good deal for the bottom line.

      I look forward to seeing what words you point into my mouth in your next response.

    25. Re:Performance isn't most important by tshak · · Score: 2

      I think the point is that RAD is still the most important factor, and as we optimize RAD platforms (like J2EE and .NET) we get close to the performance of natively compiled languages so we essentially get the best of both worlds.

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    26. Re:Performance isn't most important by eclectus · · Score: 1

      So if that 20 man development team can cut 2 weeks off of the project, but it'll require a SunFire 4810 to run afterwards, that's a good deal for the bottom line.

      Sun thinks so, too....

      --
      This signature is a waste of 42 characters
    27. Re:Performance isn't most important by nadador · · Score: 2

      So performance is very important in situations where the size of the application user base needs to scale dependably.

      Its not entirely clear to me from the articles that the performance gap is very large, or if it exists, or if it does, who is in the lead. I think that its safe to argue that for a given application, a proper implementation in .NET or J2EE would have nearly equal performance (when performance is your weighted notion of resource utilization, scalibilty, etc.). As long as that gap is realitively small, or manageably sized, I think that it will not be part of the equation driving the choice of tools.

      Where I work, we spend boat loads of money on hardware that most fanboys and slashdot addicts would scoff at. We take a major performance hit and it sucks budgets dry. Why? Because the software costs associated with buying different hardware is so high, it would make you cry.

      I feel confident saying that as long as the percieved performance gap is small, or at least manageable, performance will not drive decision making. Tool efficiency and developer training will (or should) drive the decisions made.

      Remember, too, that its hard to compare the costs of additional capital equipment and additional software labor. While additional capital expenditures for hardware can hit your budget and your cash flow like a ton of bricks, its software costs that nickle and dime even the best budgets to death.

      --

      Outside of a dog, a book is a man's best friend. Inside a dog, its too dark to read.
    28. Re:Performance isn't most important by Pfhreakaz0id · · Score: 2

      Congratulations! that's why the VAST majority of business automation applications are written in Visual Basic! I've been trying to explain that to people on Slashdot for YEARS. The reason is (unless you care about cross-platform, which 99% of businesses don't care about because their desktops are standardized on Win32), Visual Basic is THE BEST TOOL FOR THE JOB. No question.

    29. Re:Performance isn't most important by MagPulse · · Score: 1

      Yes, I'm a whiner. I'll take that risk if one mod somewhere thinks twice next time before modding. Also I must point out you're whining about my whining.

    30. Re:Performance isn't most important by Fugly · · Score: 3, Informative

      Only the fastest Java desktop applications are usable on my PIII 1.2GHz, namely NetBeans and Eclipse, and that's because they don't use Swing. I wrote a Hello World app in C# and it took 2 seconds to start. Language performance will continue to count until we all have 3+ GHz machines.

      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".

    31. Re:Performance isn't most important by joib · · Score: 2

      I'd say one reason scripting languages are popular for web development is that web apps spend most of their time waiting for IO (either file or DB) and pushing data to clients. Usually, they don't have to calculate very much. So it doesn't really matter that scripting languages are slow at tight inner loops etc.

    32. Re:Performance isn't most important by dnoyeb · · Score: 3, Informative

      Point of clarification for the ignorant.

      J2EE is not a language. .NET is not a language.

      Objective C is irrelevant in this comparison.

    33. Re:Performance isn't most important by JohnFluxx · · Score: 1

      Just for fun - do you remember that guy who made it possible to write kernel drivers in python?
      I forget how - something crazy i expect.

    34. Re:Performance isn't most important by JohnFluxx · · Score: 1

      Hardware costs are often the least of your worries.

      I'm sure I remember in a previous story about ppl spending £10k per machine for licenses alone for MSQL (just for an example).

      It would be cheaper in that case to just buy 100 servers (maybe - supporting costs etc.. )

    35. Re:Performance isn't most important by JohnFluxx · · Score: 1

      Say out of J2EE and NET that one is 50% faster than the other (extreme case) and that it would cost you an extra 10 servers. This is pocket change compared to the cost for your team of experts to develop on it, maintain it, and so on.
      Trying to make the decision on what to chose based on whether you can save money on 10 servers is like worrying about the cost of your wallpaper when you buy a house :)

    36. Re:Performance isn't most important by Twirlip+of+the+Mists · · Score: 2

      Ohhhhkay. You're not following the reasoning here. You invest $X in your server hardware. In order to save money, you spend more on hardware so you can use a software framework that doesn't perform or scale as well but for which the developers can write the application faster. You deploy the application-- which had a fixed development cost of $Y-- on the server, which had a fixed capital cost of $X.

      Six months later, your customers start going elsewhere because your web application is too slow. It's not scaling under load the way it needs to. That's okay, because you can just invest in more hardware, right?

      Wrong. If the application or the application framework doesn't scale, then more hardware won't help. You have to go back to the developers again (at a cost of $Z, which as you point out is significantly more expensive than simply buying new hardware) so they can optimize or refactor or, in the worst case, just rewrite whole sections from scratch to improve scalability.

      If-- and I'm not saying this is the case-- the J2EE framework or the .NET framework is fundamentally flawed in some way, not knowing it and not acting on that information at the beginning of your project can cost you a fortune later on. How can we tell if J2EE or .NET or whatever else is flawed? Test it. Do side-by-side performance comparisons to tell us how the two frameworks compare in terms of reliability and scalability. There's really no other way to judge which of them is a better long-term investment.

      In other words, mosch, if you cut two weeks off of your project now, but have to invest two more months in it a year from now, your net cost is higher than if you took two extra weeks and used the better framework in the first place.

      Of course, the whole point is kind of moot because in this case there's no conclusive evidence for either J2EE or .NET being a better choice. But that doesn't mean that benchmarks and comparisons are meaningless.

      --

      I write in my journal
    37. Re:Performance isn't most important by Anonymous Coward · · Score: 0

      Also I must point out you're whining about my whining.

      And now I'm whining about your whining about their whining about your whining. Let's all just stop whining now...before this gets out of hand.

    38. Re:Performance isn't most important by Twirlip+of+the+Mists · · Score: 2

      Its not entirely clear to me from the articles that the performance gap is very large, or if it exists, or if it does, who is in the lead.

      I agree completely, and I think I would have avoided some confusion if I'd made that more clear in the first place. The point is not that either J2EE or .NET is better; the point is that it matters which one is better, if in fact one of them is.

      Now, both J2EE and .NET are complex frameworks. It's entirely possible, though maybe not probable, that one or both of them will have at least one significant flaw that's not immediately obvious. Given that it's possible, I think it's worthwhile to do this kind of testing to see if it's true. The argument that performance doesn't matter isn't really a very good one, in my opinion.

      I think that its safe to argue that for a given application, a proper implementation in .NET or J2EE would have nearly equal performance

      Unfortunately I'm not sure it's safe to say that. Until more side-by-side testing is done, it's not reasonable at all to say that .NET and J2EE are equivalent. They may be, they may not be. We don't know yet.

      I feel confident saying that as long as the percieved performance gap is small, or at least manageable, performance will not drive decision making.

      But, as I've pointed out elsewhere, enterprise applications are different from other kinds of applications. While desktop applications have basically unchanging user requirements, enterprise applications will be called on to handle ever-increasing user requirements. (Today we need to be able to handle 100 concurrent users of the system. In six months, we need to be able to handle 100,000 concurrent users. Can we do that without making any code changes to the application, or will we have to rewrite as we discover performance bottlenecks?) Because enterprise apps have to scale, the choice of tools and frameworks you use at the beginning is a much more important decision, if you want to avoid painting yourself into a corner.

      --

      I write in my journal
    39. Re:Performance isn't most important by mosch · · Score: 2
      Okay, since you insist on making applying all sorts of conditions to my example that obviously change the outcome, ummm... sure you're right. the point was that a 10% or even a 50% or 80% performance penalty isn't neccessarily a reason to abandon a solution, if that solution offers other benefits, such as increased maintainability, decreased development time, increased scalability or what not.

      i look forward to reading yet another contrived reply which ignores every fucking thing i've said, and/or adds on all sorts of shit that i didn't say. you fucking retard.

    40. Re:Performance isn't most important by THEbwana · · Score: 1

      This is the least of your worries.. when you have 100+ contractors at a 400gbp/hour each waiting for some senior engineer to find out what this code *really* does - thats when you really start to hurt. /m

    41. Re:Performance isn't most important by Twirlip+of+the+Mists · · Score: 2

      Christ, dude, there's no reason to get nasty. If you don't agree with me, fine, argue with me. Calling me names, though? That's just kinda childish, isn't it?

      What you said in this post is basically unarguable. You said, essentially, that performance isn't the only important factor. Um... duh. But that's not what you originally said. You originally said that web servers are not expensive, which missed the point entirely. (If you can't solve your scalability problem by throwing more hardware at it, then the cost of the hardware is immaterial.) Then you said that trading performance for initial development time makes sense because you can buy more hardware for the money that you would have spent on software engineering. Which also misses the point, because you can find yourself in a situation where you saved money on development in the early stages, but you have to spend more money on development now to solve a scalability problem that can't be solved by buying more hardware. In that case, you save money on development at the beginning, but spend even more money on it later, which does not make sense for the bottom line.

      So... how exactly am I ignoring "every fucking thing" you've said, and/or adding "all sorts of shit" that you didn't say?

      --

      I write in my journal
    42. Re:Performance isn't most important by j3110 · · Score: 4, Interesting

      Which brings another point to the table actually. J2EE is a spec, not a product. It makes no sence to say that J2EE is slow. There are no implementations of J2EE using Java's new asyncronous IO (NIO) libraries. Someone implemnted a webserver using NIO and it blew away Apache performance as well at raw serving. Of course it was so fast that it had to be run on a loopback interface so it doesn't matter at all. The big performance hit this takes is to the database. The DBMS in this Java version requires an SQL statement to return all the keys, and then one to retrieve each line from the DB. It doesn't have to be that way, it just is because they are dumb appearantly :) The SQL server has to parse the SQL for every single statement. That's not exactly CPU friendly either :)

      --
      Karma Clown
    43. Re:Performance isn't most important by The+AtomicPunk · · Score: 1

      I must disagree. Or more, I must say he's still more correct than you are. :)

      Performance does matter on servers, but what's more critical than performance is building a solid application. That's why Java is widely preferred over C or C++ for Web applications in the first place. Sure, you can probably spend the time and come up with a faster C or C++ implementation - but what good's that do you when your app core dumps?

      Fast servers are dirt cheap; instead of 10 servers, buy 11, and use a safer language.

      BTW, this isn't a comment on J2EE vs. .NET. I have no experience with .NET. C# sounds "safe", but I don't think I'd consider it "proven" anytime soon.

    44. Re:Performance isn't most important by Twirlip+of+the+Mists · · Score: 2

      I don't think-- and I've said this elsewhere-- that it's as simple as you make it out to be. The most rock-solid web application in the world is useless if it fails under load. Given two equally suitable enterprise application frameworks, the only reasonable choice is to go with the more efficient one. ("More efficient" can mean different things in different contexts; faster, less memory-hungry, more secure, whatever you need.)

      Performance absolutely matters, because without it, you have no application.

      --

      I write in my journal
    45. Re:Performance isn't most important by mosch · · Score: 3, Interesting
      Your original post states:
      So performance is very important in situations where the size of the application user base needs to scale dependably.
      It doesn't take a genius to understand that scalability and initial performance have nothing to do with each other. In fact, highly scalable solutions are often slower because they're designed with the understanding that 'perhaps there wil be a load balancer in front of this application someday, and I will not be able to handle session state in the simplest way'.

      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.

    46. Re:Performance isn't most important by Twirlip+of+the+Mists · · Score: 2

      It doesn't take a genius to understand that scalability and initial performance have nothing to do with each other.

      Hmm. Evidently you don't understand that "scalability" means "the ability to maintain acceptable performance under varying degrees of load." These things should be clear from context. I'm not quite sure where the breakdown in communication is coming from. In any case, it's obvious that scalability and performance are, in fact, tightly coupled characteristics, because scalability is essentially defined by performance under varying conditions.

      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.

      Doesn't really bother me if you want to be profane and personally offensive. I was merely pointing out that it's childish. It is getting tiresome, though, so I think it's safe to say that we're getting very close to the end of this exchange.

      --

      I write in my journal
    47. Re:Performance isn't most important by good-n-nappy · · Score: 1

      Not sure I understood your post. But just so you know, this is under serious consideration - take a look at JSR 121. Also note that the #2 request for enhancement (4466510) on the java developer connection is related to memory usage.

      --
      Never underestimate the power of fiber.
    48. Re:Performance isn't most important by SWicklund · · Score: 1

      The reason that scripting languages are used on the server side IS performance. They run within an application server that does not need to start a new thread of execution for each call.
      CGI scripts suffer from lousy scalability which these languages remedy.

    49. Re:Performance isn't most important by mosch · · Score: 2
      I can write an app that handles 1000hits/second on a single machine, but cannot scale to two machines. Or I can write a scalable app which handles 900hits/second on a single machine, but I can get 900 MORE hits/second by adding a second machine, and so on.

      This is what I'm referring to when I say that there's often an initial performance drop with scalable software.

      Anyway, here's something for you to try, stop being mad that I called you a fucking retard and insinuating that your ability to communicate effectively was on the same level as a shit-flinging monkey. Instead, ask yourself what changes you'd make in your optimization strategy if you're designing code for: a) a single-cpu machine, with no possibility that the code will ever be on multiple machines, or b) a large cluster, potentially with multiple types of machines.

      Once you're done pondering that you'll realize that I am far smarter than you, not to mention better looking.

    50. Re:Performance isn't most important by MrBlack · · Score: 2

      Its not entirely clear to me from the articles that the performance gap is very large, or if it exists, or if it does, who is in the lead

      How can you even _SAY_ that? I'm not trying to be troll here, but did you read the MiddleWare article? the .NET PetStore beat the optimized J2EE PetStore in every benchmark. Sometimes by a factor of 2 or more. I agree with a lot of things other posters have said, that maintainability, developer productivity etc. are often more important than raw performance, but the J2EE PetStore got killed there too. 14KLOC vs 3~4KLOC. Maybe the J2EEs exception handling is a little verbose (I haven't looked), possibly there were some optimisations that could have been made that weren't (J2EE is evolving pretty quickly, and you don't whip together a benchmark like this over a week-end) but is it equally possible that for each of these gripes on the J2EE side there is some .NET developer out there shaking his head going "Y'know they really could have done THAT better". I don't think pretending there is no difference helps.

    51. Re:Performance isn't most important by Thomas+Charron · · Score: 2

      Your looking at thge short term. I can promise you that in the long run, people always pay off over timer.

      What happens when suddenly your expensive machines munges your database? When suddenly, that one engineer that wasn't very good, but wrote a fairly important, yet archaic past of your backend, leaves?

      Code cannot really be picked up out of the blue. People need to pass that on. Yes, indeed. Expensive people.

      I have YET to see a compiler that accepts a buisness drawing in Powerpoint and turns it into a stable, scalable solution to generate revenue. I have, on the other hand, seen those expensive people your saying are replacable with machines, do it.

      --
      -- I'm the root of all that's evil, but you can call me cookie..
    52. Re:Performance isn't most important by Anonymous Coward · · Score: 0

      Loser.

    53. Re:Performance isn't most important by Sentry21 · · Score: 2

      I think the issue with compiled languages on the server-side is that there's a larger problem than just RAD vs. speed. For example, writing your web apps in C could work fine, until some obscure pointer bug reared its ugly head and overflowed a buffer. This could hypothetically result in, for example, making an online store think you had x number of dollars in store credit, or think you'd already paid when you hadn't.

      This problem arises because the deep magic is only run by one company (likely), so it may take longer to rear its head - and when it does, when an exploit is realized, it needs to be fixed immediately. This can also be a problem in that people don't necessarily understand the code someone else might've written, and they have to learn entire sections of code, or entire projects, just to fix.

      PHP also takes time to learn about and so on, but you don't have pointer errors and buffer overflows (in that app specifically), since buffers are resized dynamically. You might pass bad data to something else, but you should be checking data once you have it all collected.

      Then there's load times. On Apache, mod_php.so is loaded into memory, and then all that needs to be done is to read the page, compile, and execute, or (if pre-compiling/caching) just to execute. JSP is precompilied by default by Tomcat, and the JVM is always running. With a natively-compiled system, if you're not writing your own DSO or server software, it has to be executed for every page hit, and it's a lot harder to get someone who understands your setup than someone who understands JSP/ASP/PHP.

      That all being said, I think the main factor is that the Internet moves at 'internet speed' - when you have an idea, it needs to get done now, with as little fuss, trouble, and debugging as possible. Scripting languages offer this by being highly abstracted and widely used (if a million people use PHP, it's more likely that people will find bugs. Slow but rapid beats fast and latent six days of the week.

      Scripting languages on the desktop would be cool though, but for mainstream apps, there has to be a lot of garbage collection, because variables in scripting languages (can) take up more memory than their C/C++ counterparts, which can get laggy.

      --Dan

    54. Re:Performance isn't most important by BigBadBri · · Score: 1

      I've written a couple of simple ISAPI DLLs to return data from various sources, and seriously considered using them when I had a full application to write, but couldn't reconcile the fivefold loss in productivity over using servlets, nor the unfeasibility of maintaining 7-8 times as much code.

      That may be why C/C++ doesn't get used quite so often in web apps...

      --
      oh brave new world, that has such people in it!
    55. Re:Performance isn't most important by Anonymous Coward · · Score: 0

      J2EE is not purely interpreted. The speed difference between Java and C++ is nothing to do with one being interpreted and one being pre-compiled - it's all to do with references and level two caches. Java does not belong in the same catagory as Perl, because Perl really is interpreted.

    56. Re:Performance isn't most important by Avumede · · Score: 2

      Why don't we write server code in C++? Because it tends to crash more (due to programmer error). Microsoft's ISAPI filters are to be in written in C++, and, from my limited experience, they are a complete pain. One bug in an ISAPI filter can bring down the entire server.

      Also, Java is far from a scripting language. It basically runs natively, due to the hotspot compilers. I say basically because there are still situations in which sections of the Java code cannot be compiled, but this should not have too much of an effect, and with each release things are getting better.

    57. Re:Performance isn't most important by Anonymous Coward · · Score: 0

      Problem with your analysis is that you are focusing on the small things (function calls), and ignoring the big things -- which in a web application are network and disk communicaiton.

      One reason J2EE keeps losing this PetStore thing is that it has a whole other layer (Entity Beans) between the database and the JSP pages that .NET doesn't have. That requires lots of code, memory, CPU, and network overhead, but in theory makes your app more useful/scalable.

      By the time you deal with all of the database/applicaiton server/message queue overhead in your 'enterprise' application the O(...) overhead difference between Java/Perl/C is irrelevant.

    58. Re:Performance isn't most important by zmooc · · Score: 2

      Real life example: an application is developed for 120K, hosting requires 5 servers instead of 1. So what does the hosting cost? 1) SLA: 250/mnt 2) server: 200/mnt 3) Colocation: 140/mnt 4) Administration: 100/mnt/server. That's 690/mnt for 1 server, 2450/mnt for 5. That's 29K/year which is not even that expensive for enterprise-level applications. That's easily enough money to optimize the application enough to make it to run on 1 server (in this case). That's 29K which you get back within a little over a year.

      --
      0x or or snor perron?!
    59. Re:Performance isn't most important by Anonymous Coward · · Score: 0

      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.

      If you want to engage in a debate, don't start calling people fucking retards when they don't address your points.

      I did get a good laugh out of it, though.
    60. Re:Performance isn't most important by Anonymous Coward · · Score: 0

      Performance only matters if it sucks.

      And in my experience with actual java-written apps, java's performance sucks.

      Tomcat, jEdit, anything that's not a sparkly unnecessary animation applet: SUCKS. Hard.

    61. Re:Performance isn't most important by mosch · · Score: 2
      y'know, it takes a special kind of retard to interpret my post as meaning that i want to replace all neccessary staff with mid-level sunfire.

      of course you still need people to write the code to run on the boxes, people to test it, people to document it and people to monitor it. but if spending on money allows you to hire two fewer engineers (or lately, to not lay off two engineers), that's a good thing. after all, companies that don't make money go out of business, and then nobody has a job.

    62. Re:Performance isn't most important by Anonymous Coward · · Score: 0

      Perhaps you might've heard of Delphi too?

      I'm not going to try and start a language war, but Delphi just makes life more pleasant, mostly in the IDE.

    63. Re:Performance isn't most important by Anonymous Coward · · Score: 0

      If you're executing 'bytecode', you are not running natively. No, not close to it either. Until there are x86 instructions coded into your executable file, you are not running natively. Just because the computer is so fast YOU can't tell the difference doesn't mean that difference is not there.

    64. Re:Performance isn't most important by Anonymous Coward · · Score: 0

      If you don't know why a ten second start time for "Hello world, this is java" is bad, you should have no business.

    65. Re:Performance isn't most important by Anonymous Coward · · Score: 0

      ...instead of just flinging shit around like a retarded monkey.

      For what it's worth, monkeys with normal cognitive ability fling their exrement as well.

    66. Re:Performance isn't most important by Anonymous Coward · · Score: 0

      Do you feel better now?

  3. Save your time by Captain+Pedantic · · Score: 1, Interesting

    And read The Register's write up.

    Basically, nothing to see here.

    Oh, one interesting fact, "the .NET version required 14,004 lines of code, while the Java version featured 2,096."

    --

    None are more hopelessly enslaved than those who falsely believe they are free. Johann Wolfgang von Goethe.
    1. Re:Save your time by Thomas+Charron · · Score: 3, Insightful

      Lines of code has nothing to do with ease of use, reliability, or scalability.

      This isn't some sort of a 'I can do that task in *3* lines of code, Jack!' contest.. ;-)

      --
      -- I'm the root of all that's evil, but you can call me cookie..
    2. Re:Save your time by JonK · · Score: 1
      Oh, one interesting fact, "the .NET version required 14,004 lines of code, while the Java version featured 2,096."

      If, instead of regurgitating the Register's errors, you'd bothered to read the report yourself, you'd know that the Reg, with its usual incomparable accuracy, had got their numbers arse about face.

      --
      Cheers

      Jon
    3. Re:Save your time by interiot · · Score: 5, Informative
      Actually, it's the other way around. Look at the PDF, page 40.
      • The Middleware Java Pet Store 2.0 implementation uses the same basic EJB-recommended architecture as the original Java Pet Store (except fully optimized for performance). Hence, its code count remains largely unchanged over the original at 14,004 lines of total code.
      • 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).

      This is covered right away in the rebuttal, as there seem to be some tricks played to get the discrepancy so large.
    4. Re:Save your time by Yankovic · · Score: 3, Interesting

      you got that backwards. Java required 14k lines of code and .NET required 2k.

    5. Re:Save your time by Utopia · · Score: 1

      Read the report.
      Its the other way round.
      Java required 14004 line while .NET version had 2096 lines.

    6. Re:Save your time by Kythorn · · Score: 1

      Unfortunately, the fact you quoted from the register is wrong. I guess it's too much trouble to be asked to actually read the report before writing an article, or posting a comment based on the article, but the report itself clearly says .NET Petshop 2.0: 2096 LOC, Middleware J2EE Pet Store 2.0: 14,004 LOC.

      So it's faster, and less lines of code.

      Love it or hate it, there's no reason to spread disinformation.

    7. Re:Save your time by Brian+Blessed · · Score: 1
      And as the Register article says:

      Version 2.0 of each application added XML-based web services, and distributed database access with rollback

      So the demo also shows how to make your applications scalable, making performance even less relevant.
      -Brian.

    8. Re:Save your time by NineNine · · Score: 1, Redundant

      That's funny... that's the polar opposite of this graph.

      Bah, but who really cares? Hell, I actually own a pet store, and I use neither of these. A simple off-the-shelf system works great for me, and speed isn't an issue. I don't give a rat's ass what it's written with, as long as it works. Just like I don't care whether the parts in my stereo came from China or Taiwan, as long as it works.

    9. Re:Save your time by WolfWithoutAClause · · Score: 2
      Lines of code has nothing to do with ease of use, reliability, or scalability.

      It does correlate fairly well with programmer productivity however.

      --

      -WolfWithoutAClause

      "Gravity is only a theory, not a fact!"
    10. Re:Save your time by spike2131 · · Score: 1

      Arguable, but lines of code has everything to do with maintainablity.

      --
      SpyDock: Scientific Python in a Docker container
    11. Re:Save your time by cptgrudge · · Score: 0, Redundant

      Actually, that article is wrong. If you look at the original test document linked up above, you'll see that the Register actually got it backwards.

      From the pdf above (emphasis mine):

      "The Middleware Java Pet Store 2.0 implementation uses the same basic EJB-recommended architecture as the original Java Pet Store (except fully optimized for performance). Hence, its code count remains largely unchanged over the original at 14,004 lines of total code.

      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)."

      Take it for what you will.

      --
      Qualitas edurus commercium, nullus penitus net rimor, nullus deus beneficium
    12. Re:Save your time by spencerogden · · Score: 2

      No, but LOC does impact developer productivity, and bugs. There have been a few studies showing that programmers write the same number of lines in a given time no matter what language they are using. Also, less code means less stuff to read to find bugs. I would think a 7-fold increase would have some serious reprecussions on easy of developement.

    13. Re:Save your time by LordNimon · · Score: 1
      Lines of code has nothing to do with ease of use, reliability, or scalability.

      No, but it does have a lot to do with maintainability, especially with a factor of seven difference.

      --
      And the men who hold high places must be the ones who start
      To mold a new reality... closer to the heart
    14. Re:Save your time by harvardian · · Score: 3, Informative

      Lines of code has a little bit to do with reliability. It's a well-known fact that the more lines of code you write (called SLOCs), the more bugs you will have (notes on this here). Although more SLOCs means more bugs, density of bugs does not increase with code length (IEEE report here).

    15. Re:Save your time by inerte · · Score: 1

      Oh, one interesting fact, "the .NET version required 14,004 lines of code, while the Java version featured 2,096." /**
      * Why LOC doesn't matter
      *
      * This is a reply to a Slashdot's comment.
      * I intend to show how LOC is subjective.
      *
      * @version 1.0
      * @coypright Julio Nobrega
      * @author Julio Nobrega
      */

      $_ = That // the fact
      . it // refering to "That"
      . really // it's no an assumption
      . very // more than usual
      . interesting, // I agree, after all
      . indeed! // see previous comment /**
      * End of reply
      */

    16. Re:Save your time by Gaijin42 · · Score: 2, Informative

      There weren't tricks to get the descrepancy large. Sun wrote the original J2EE version. MS wrote the .net version. If Sun chose to write their code in an inefficient manner, (and you care about lines of code) then perhaps that tells you something about OTHER apps that sun writes?

    17. Re:Save your time by PongStroid · · Score: 1
      The Register apparently didn't read the article closely enough on the first go around. The .pdf states just the opposite, and the current article has been corrected:

      But the benchmark throws up the remarkable statistic that the Java version required 14,004 lines of code, while the .NET version featured just 2,096 (and not the other way round, as we originally stated).


    18. Re:Save your time by Anonymous Coward · · Score: 0

      Damn, /. screwed my beautiful indentantion. It even ate words and letters! And oh, I did preview. I guess there's a bug somewhere.

    19. Re:Save your time by LoRider · · Score: 3, Insightful

      So you don't think that maintaining 2000 lines of code as opposed to 14000 makes any difference in the scalability, reliability or ease of use.

      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 .Net application could be the best designed application that is has everything well abstracted and adheres tightly to the MVC model of programming, but I don't give a shit 2000 lines of code always going to better then 14000 if they both accomplish the same goal.

      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

      --
      LoRider
    20. Re:Save your time by Gaijin42 · · Score: 5, Insightful

      I disagree. If I write an elegant solution that takes up 500 lines, and you write a clunky solution that takes 1000 lines, who was more productive?

      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.

    21. Re:Save your time by rdean400 · · Score: 1

      You have that backwards. The Java version required 14K lines, while the .net version required 2K. (This has a lot to do with differences in how exception-handling was done, as well as not using frameworks, such as Struts, for the J2EE version when .net includes a frameworks that was utilized).

    22. Re:Save your time by Anonymous Coward · · Score: 0

      Considering the original post had the LOC counts reversed, it appears that your post is saying that "writing efficient intelligent code" with .NET is "the way to go", and that Sun's "write tons of shit code and hope for the best mentality" is flawed.

    23. Re:Save your time by Anonymous Coward · · Score: 0

      moron alert: mod parent down...

    24. Re:Save your time by mosch · · Score: 2
      Yeah,
      @k=unpack('C*',pack('H*',shift));for(@t=@s=0..255) {$y=($k[$_%@k]+$s[$x=$_ ]+$y)%256;&S}$x=$y=0;for(unpack('C*',<>)){$x++;$y= ($s[$x%=256]+$y)%256; &S;print pack(C,$_^=$s[($s[$x]+$s[$y])%256])}sub S{@s[$x,$y]=@s[$y,$x]}
      is much more efficient than
      mcrypt_ecb(MCRYPT_RC4, $key, $input, MCRYPT_ENCRYPT);
    25. Re:Save your time by LoRider · · Score: 2

      Actually I couldn't care less which one you use .Net or Sun but writing efficient code is the way to go. And my response was to someone suggesting that 14000 opposed to 2000 lines of code makes no difference.

      I am suprised though that .Net was less code, but what do I know.

      --
      LoRider
    26. Re:Save your time by jaaron · · Score: 2

      Okay, this is a troll, but I'll bite.

      First off, you obviously didn't take time to read the articles. Do you have any idea what application we're talking about? It's the java "petstore" application, which specifically was not written for preformance, but for readbility and as an example for proper coding practices. MS wrote the code as an example in performance, but not as an example of good design patterns (although they claim it is).

      From the article: It's quite amusing: Sun released the initial PetStore in order to show good architecture and use of design patterns but not performance, and now MS releases a PetStore that *does* have good performance but which is completely awful as far as use of good design patterns is concerned but which is supposed to show how to build .Net apps. Ironic.

      How Sun writes a tutorial has nothing to do with how Solarius or their other apps are written. If anything, it shows that Sun was actually trying to teach developers about it's product, while Microsoft was just competing for headlines with no care about proper coding practices and about teaching such practices to the developers using .NET.

      --
      Who said Freedom was Fair?
    27. Re:Save your time by Lussarn · · Score: 1

      You think so. The actual "keypressing" from the programmer is a very small part in programming. The thinking is probably 90%. After the thinking 1 or 3 lines of code doesn't really matter. Just the fact that it's 1 or 3 lines of wellplanned bugfree code.

      I do agree on that if you can use a well tested library function (1 line) or make your own function (3 lines) the 1 liner for the most part is the better choice. If that is what you meant.

    28. Re:Save your time by Fugly · · Score: 3, Insightful

      I disagree. If I write an elegant solution that takes up 500 lines, and you write a clunky solution that takes 1000 lines, who was more productive?

      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.

    29. Re:Save your time by Thomas+Charron · · Score: 2

      Not really. I've seen several line apps that aren't maintanable specifically becouse they rely on functionality provided by the platform, so when things change, as they quite often have in the J2EE world, keeping up to date pretty much requires scratch rewrites..

      --
      -- I'm the root of all that's evil, but you can call me cookie..
    30. Re:Save your time by Anonymous Coward · · Score: 0

      can you say reference implementation with more emphasis put on maintainability than performance you dipshit ? if i wrote a monolithic petstore in java it would also be 2000 lines and blow the C#.NET version away.

    31. Re:Save your time by Laura_007 · · Score: 1

      First off, you obviously didn't take time to read the articles. Do you have any idea what application we're talking about? It's the java "petstore" application, which specifically was not written for preformance, but for readbility and as an example for proper coding practices. MS wrote the code as an example in performance, but not as an example of good design patterns (although they claim it is).

      Bullshit. Architecture astronauts like to design overly complex, overly demanding systems containing a vertical ladder of various component layers and middleware, but in the end such a design virtually always leads to failure (I've been involved with some projects with such astronauts: A year later the project was dumped as they constantly redefined their interface middleware layers). You may not agree with what Microsoft proposes as best practices, but in no way does that mean that you're right.

      If anyone is a troll, it's you. This is the classic anti-Microsoft bullshit that Slashdot is so famous for: Whatever Microsoft does is wrong, and whatever [INSERT COMPANY THAT OPPOSES MICROSOFT HERE] does is right. Screw that. .NET absolutely OBLITERATES J2EE (we're not talking irrelevant percentages...but by MANY MAGNITUDES) using the design that Microsoft proposes as best for their product (apparently they forgot to consult you, though) versus the design that Sun proposes for their product.

      Check the religious zeal at the door.

      --
      I am looking to accumulate friends. Please click on the circle and add me as a friend. Thanks!
    32. Re:Save your time by banzai51 · · Score: 1

      However, Enterprises don't care about developer effeciency. They care about end-user effeciency. If an application has more code than it's rivals but will allow all 50,000 employees and maybe even the company's customers to be more effecient, then who cares about some extra lines of code?

    33. Re:Save your time by Frank+of+Earth · · Score: 2

      Haha I know the answer to this question!

      100 lines of .NET code weights the same as 100 lines of java code

    34. Re:Save your time by sfe_software · · Score: 2

      Oh, one interesting fact, "the .NET version required 14,004 lines of code, while the Java version featured 2,096."

      Hm... the PDF document, as well as this page, both say the opposite: .NET had 2,096 LOC, while J2EE required 14,004 LOC. The dreambean link goes into detail about why the J2EE solution has so much more code, etc...

      It looks like you were quoting something -- where did you copy that quote from? Or was it just a misquote from memory?

      --
      NGWave - Fast Sound Editor for Windows
    35. Re:Save your time by sfe_software · · Score: 4, Informative

      Now of course the 14000 lines in the .Net application...

      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 .NET solution only had 2096 lines, while the J2EE one had 14,000+ lines of code...

      So much for Microsoft's write tons of shit code and hope for the best mentality :p

      --
      NGWave - Fast Sound Editor for Windows
    36. Re:Save your time by fitten · · Score: 1

      Then do it, troll. Put your money where your mouth is. I can write that app in 2000 lines of code. mmm.. I can write it in 1500 lines of code. Bob, write that code!

    37. Re:Save your time by Captain+Pedantic · · Score: 1

      That's what the Register wrote this morning when I read it. When I posted this post, I reloaded the Reg's page, but evidently it was cached by my browser and so I pasted the wrong figures.

      Nobody else needs to either moderate me down or reply saying that I fucked up. I know, and now so do you. No malice intended, and I have learnt not to trust either Galeon (which was set to always reload pages I visit) or the Reg (who usually don't let me down).

      The Reg's article is still worth reading, here is the link again, in case you missed it in the hurry to flame me.

      --

      None are more hopelessly enslaved than those who falsely believe they are free. Johann Wolfgang von Goethe.
    38. Re:Save your time by Anonymous Coward · · Score: 0

      Nice reversal... other way around:

      Java = 14K-LOC .NET = 2K-LOC

    39. Re:Save your time by sfe_software · · Score: 2

      ...in case you missed it in the hurry to flame me.

      I wasn't trying to flame, honestly. I wasn't aware of the Register's article when I posted that (nor did I see the other replies to your post). I was just curious why you (and a few others) had posted comments with the numbers swapped. Both sources that I read said something different, so again I was curious.

      Now you've answered my question. No harm, no foul :)

      --
      NGWave - Fast Sound Editor for Windows
    40. Re:Save your time by WolfWithoutAClause · · Score: 2
      No. You're wrong. The software literature contains cross language comparisons- it shows programmer productivity is correlated with software brevity.

      There's lots and lots of reason- debugging is easier, the programming language is usually closer to the problem domain if the program is shorter, typing is easier, less typos mean that successful compilation happens more quickly, often looking up the APIs in books is needed less, etc. etc.

      Bottom line, everything else being equal, I'll take the shorter programming language in a heartbeat.

      --

      -WolfWithoutAClause

      "Gravity is only a theory, not a fact!"
    41. Re:Save your time by Gaijin42 · · Score: 2

      which specifically was not written for preformance, but for readbility and as an example for proper coding practices

      Are you saying that performance shouldn't be taken into consideration when deciding what "proper coding practices" are?

    42. Re:Save your time by Fugly · · Score: 2

      I have no clue what you're talking about when referring to "The software literature" (and I don't really care frankly). I have been writing code professionally for a long time and have worked in shops with very easy to maintain code and very hard to maintain code. Documentation and the way code is broken apart and modularized is what matters. Not how much of it there is.

    43. Re:Save your time by glamslam · · Score: 1

      My million dollar question is: Why aren't their better development tools for Java? People rave about Visual.Net's ability to create web apps fast (with Web Forms (tm)). As a small, growing company, why should I spend my developer's time reinventing basic form logic and layout?

      I'd like to avoid Microsoft's platform dependance, but I'd also like an easier development framework for faster WEB RAD.

      Does this exist for Java?

      Seriously, I'd like to know...this is not a troll.

    44. Re:Save your time by WolfWithoutAClause · · Score: 2
      I have been writing code professionally for a long time and have worked in shops with very easy to maintain code and very hard to maintain code.

      Me too. More than 15 years. And I have read the literature that you have no clue about. Still, there is a difference between writing code and maintaining code I suppose. Writing code is more to do with the language, maintaining code is more process oriented/limited in my experience. I have worked on several projects with very large systems (more than 10 million lines of code, more than 500 software engineers) there is very definitely a superlinear relationship between software size and maintenance difficulty. YMMV.

      --

      -WolfWithoutAClause

      "Gravity is only a theory, not a fact!"
    45. Re:Save your time by Anonymous Coward · · Score: 0

      Reusable code has to deal with different contexts and make more decisions than single-purpose code. Error checking slows down code without affecting its behavior given correct components and inputs. For these and other reasons, robust and maintainable code is often slower than a brittle mess that happens to produce the same results. Start with good code, and only if it's too slow profile it and minimize the amount of bad code you need to resort to.

    46. Re:Save your time by a_n_d_e_r_s · · Score: 2

      The interesting thing is that every time a Micosoft story are shown on Slashdot several people come out and proclaim time and time again that it's all part of huge Slashdot anti-Micosoft conspiracy.

      I wonder why so many people seams so interested in pointing out that non-existant conspiracy instead of the real facts.

      They complain and writes a lot of off-topic posting about this proclaimed great conspiracy. Strangly it makes me come to think of advertising - by repeating someting very many times some people will start to think that what they say might be true - even though it looks more like Micosoft usual FUD tacticts. Like the time thay had a ad-person from a firm they hired switch from Mac to MS software so that she could write a positive review of the experience.

      This whining loooks more like an anti-Slashdot compaign from Microsoft fanatics.

      I think the problem is that you and a lot of other people should know that if Micosoft stopped being a bully and became a more well-behaved company - it would not get so mush bad press on Slashdot and other places.

      Any company that use illegal business practice will have to bear their own self-inflicted burden of badwill.

      --
      Just saying it like it are.
    47. Re:Save your time by Headius · · Score: 1
      After reading the review of the benchmark, I think there's only two reasonable explanations for the discripencies between the published test and the actual test. Either:

      The Middleware Company is deliberately manipulating the results to favor .NET and Microsoft, or

      They're really not all that great at J2EE
      Either way, it has certainly hurt my respect for TMC. They've had some good articles and some great employees over the past few years, but the points listed in the review are blatant and telling. TX_REQUIRED? Come on guys, you should know that would hurt results...or perhaps you do.

    48. Re:Save your time by Anonymous Coward · · Score: 0

      Why don't you read the fucking review you knot-headed retard. The LOC comparison is bogus anyway.

    49. Re:Save your time by WWWWolf · · Score: 1
      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?

      Yeah, there was an article in the Register that had the numbers wrong way around first, but they corrected it...

    50. Re:Save your time by Fugly · · Score: 2

      Gee, thanks for the references. "the literature" is so much more specific than "the software literature". I'm sure everybody knows exaclty which works you're talking about now. There can't be more than what, 5-10 books written on the subject of software development.

      Any argument that says code size is relevant is inherantly flawed. Difficulty of both writing and maintaining code increases and decreases with many factors. From my personal experience, the number of lines in your source code is not one of those factors. Major factors I've found include but are not limited to the following:

      1) How well the problem is defined and communicated by the people demanding the software. (HUGE deal - probably more important than anything else I've encountered regarding the success of a programming endevor)
      2) The inherent complexity of said problem.
      3) How well that problem is divided into managable and intuitive smaller taks by the software architect.
      4) How well the system is documented outside the source
      5) How well complex areas of the code are documented within the source
      6) How much planning is put into development enviroments and development processes (choice of IDE's, build environments, test enviroments, source management, etc.)

      There is an obvious correlation between code size and several of these factors. However, correlation is not causation and good design in some of these areas may make code larger while other may make it smaller.

      I have worked with applications that have had comparatively small codebases but were extremely hard to manage due to how poorly that code was broken up and documented. The codebase I currently work with on a day to day bases is enormous. I don't know how many lines of code it surely spans thousands of lines of code. It is the easiest code I've ever worked with in terms of maintenance and extension. Did it take us longer to create than the original code? Maybe a little but the cost savings to the business in maintenance and extension will be huge.

    51. Re:Save your time by WolfWithoutAClause · · Score: 2
      Any argument that says code size is relevant is inherantly flawed.

      In a sense true, but also any argument that says that code size is irrelevant is inherently flawed also. In fact as you point out:

      There is an obvious correlation between code size and several of these factors.

      But that's exactly my point. And if it correlates over parts of your list, then the sum of the factors correlate also. It is not a perfect correlation, but the correlation is there.

      --

      -WolfWithoutAClause

      "Gravity is only a theory, not a fact!"
    52. Re:Save your time by Fugly · · Score: 2

      You either didn't read my post well or you're choosing to not respond to my argument. I said, there is a correlation but it is not as simple as code size goes up = bad, code size goes down = good. Some good practices may increase code size where other ones may decrease it. You end up with a valueless measure.

    53. Re:Save your time by WolfWithoutAClause · · Score: 2
      You either didn't read my post well or you're choosing to not respond to my argument.

      Mostly the latter, your argument is missing the point, still.

      Some good practices may increase code size where other ones may decrease it.

      Mostly or completely irrelevant. We are talking about different languages not different designs.

      Ok, based on your argument, if I'm not interested in portability I might as well exclusively use assembly language for everything. More lines of code, but since lines of code is a valueless measure that doesn't matter. Right? Wrong!

      If you've done any assembly language you'll know it takes considerably longer than, say C; for the same algorithm.

      Why? What is it about certain languages that makes them harder? Why do scripting languages exist? Why is a program in Java very often shorter and more reliable than the same program in C++?

      Another question is why do scripting languages like Perl exist? Answer, because many times it's quicker to use than to do the same thing in C, again you end up with less lines of code for reasonably big classes of designs.

      I'm not claiming that lines of code is the answer, I'm saying it is well correlated with the answer; the true answer is things like, in C++ I have to remember to free the memory, sometimes I forget, but in Java it does it for me and I can't forget, and I don't have to write extra code to do it.

      But the bottom line is, two programs coded for the same algorithm (in DIFFERENT languages), have different reliabilities and different lengths. The shorter is usually more reliable, needs less coding, less debugging, less bug fixes. Design time is about the same, of course.

      --

      -WolfWithoutAClause

      "Gravity is only a theory, not a fact!"
    54. Re:Save your time by Ghannodahn · · Score: 1

      Clarification from The Reg on that article: "But the benchmark throws up the remarkable statistic that the Java version required 14,004 lines of code, while the .NET version featured just 2,096 (and not the other way round, as we originally stated). The benefit of hindsight, or is one of our class libraries missing? ®" GSK

  4. J2EE by Anonymous Coward · · Score: 3, Informative

    We used all java technology on www.bayoubid.com and had no problems with speed. In fact from our initial tests java was quicker than C#.

    1. Re:J2EE by Anonymous Coward · · Score: 0

      I can tell it was done in Java. Every page I went to had a 404 error in it. Nice job!

    2. Re:J2EE by scot4875 · · Score: 1

      We used all java technology ... and had no problems with speed

      I have no doubt that this is true. Especially when the site seems to have a whopping 11 registered users and 2 live auctions. You could probably host the site using QBASIC technology on a 386 and not run into load problems with those kinds of numbers.

      --Jeremy

      --
      Jesus was a liberal
    3. Re:J2EE by galore · · Score: 1

      no, i can't imagine that you would have any performance issues with that site... just look at those auction statistics!

      registered users: 11
      auctions listed: 2
      total funds: $19

    4. Re:J2EE by Anonymous Coward · · Score: 0

      Maybe if you guys looked at the news you would have seen the website was just launched yesterday.

  5. Hmmmm. by The+Bungi · · Score: 4, Insightful
    So essentially this boils down to actually, that thing we said was killer in fact sucks, so your comparison is unfair. We also ain't fixing it, so there.

    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.

    1. Re:Hmmmm. by Twirlip+of+the+Mists · · Score: 2

      Actually, in this case, it's pretty much about benchmarks and raw speed. Unlike a personal desktop computer or a desktop application, when you're programming an enterprise app your own productivity isn't what's important. The overall reliability and quality of the finished app is what's important. If you choose an enterprise framework that doesn't scale-- or that doesn't scale as well-- then you're in a bad spot. So it's important to know how these two frameworks compare so you can make an educated choice at the front end about which one is better to use. All other things being equal, the faster one is better.

      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.)

      --

      I write in my journal
    2. Re:Hmmmm. by The+Bungi · · Score: 1
      I disagree. All things being equal, it pretty much comes down to developer productivity and costs (development costs and operational costs). The benchmarks really don't show how well any of the solutions scale - for example, you can use MS Application Center to create clusters with up to 32 boxes and serve your apps from them. I don't know how well Java can scale, either.

      Corporations put this sort of thing waaay down in the priority list when making decisions about which technology to go with, trust me.

    3. Re:Hmmmm. by gosand · · Score: 2
      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.

      And freedom, don't forget freedom.

      Oh, wait. It has never been about that.

      --

      My beliefs do not require that you agree with them.

    4. Re:Hmmmm. by Anonymous Coward · · Score: 0

      Uh, no, benchmarks and raw speed aren't the biggest thing in server apps.

      Developing the enterprise apps I build takes millions, and maintaining them takes millions more. As long as you have scaleability (ie, as long as throwing more hardware at it will improve your performance) raw speed isn't that big a deal.

      Because we know we can build apps that perform ok with J2EE or .NET - the real question is what does it cost for the hardware/licences/etc and what is the cost to build/maintain the app.

    5. Re:Hmmmm. by Anonymous Coward · · Score: 0

      Developing the enterprise apps I build takes millions, and maintaining them takes millions more.

      Bwah-ha-ha-ha! Best real-world example of a delusion of grandeur ever. Ha.

  6. Re:The sad thing is... by GreyWolf3000 · · Score: 3, Insightful
    It's not about loving Linux. It's about loving Freedom (TM). And that means not having a centralized conduit for information exchange. It means my computer being mine.

    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.

    --
    Slashdot: Where people pretend to be twice as smart as they really are by behaving like children.
  7. Final Conclusion by Anonymous Coward · · Score: 4, Funny

    The only things TMC actually proved are that they are

    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.

    1. Re:Final Conclusion by truth_revealed · · Score: 4, Insightful

      Why on earth would Sun put out such a horribly performing example J2EE program (Pet Store) when it knows damn well that 99% of the programmers out there will copy this program as a shining example of how to code in J2EE correctly?
      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.

    2. Re:Final Conclusion by j3110 · · Score: 2

      There's nothing wrong with the way they did the java pet store. The problem is that it is a pet store, not a bank :) Besides, even a bank wouldn't want to use all of J2EE. It's a HUGE technology. Some ppl call it bloat. I would call glibc a bloat because I've never used the entire library before. However, if someone didn't NEED those functions, or in this case API's/features, they wouldn't be there. SUN could have written a lot of small programs, but then developers wouldn't have seen how they can work together to perform a task.

      SUN doesn't need to make a good example, developers need to RTFM or by a GOOD book to tell them when and where things SHOULD be used, not where they can. J2EE isn't for pet stores to begin with. It should have been painfully obvious to anyone that knew that J2EE was an acronym for Java 2 _Enterprise_ Edition. I don't know of anyone that has a pet storage facility such that they can mail order them or not know exactly what they have just by looking. If any of you reading this need that explained to you, or you don't see the irony/humor in choosing a Pet Store for an Enterprise demonstration, then there is no hope for in you :) You could try to get a book telling you when to use certain API's, but if you're that lacking in common sence, then a book isn't likely to help.

      I see what you are saying about leading experts, but don't think that the Java programmers who made the revised pet store needed to be experts to do better than they did. It looks like it was written by a team of monkeys. One good developer is better than any quantity of monkeys. If you are looking for a technology that allows monkeys to make a working enterprise systems, then you'ld be more likely to find a pot of gold at an end of a rainbow. Seriously, you really would. It just might happen that a midget dressed in green is smelting gold there. Much more likely than a monkey writing code that could work in the enterprise.

      Really... how many of us have had to trouble shoot that POS legacy system that a certified MS VB monkey with 2 years of high school wrote?

      --
      Karma Clown
    3. Re:Final Conclusion by truth_revealed · · Score: 3, Interesting

      If Sun's Pet Store application is not highlighting J2EE "best practice" then what the hell is it for, then? Are you saying that Sun with a billion dollars in cash in the bank could not find a suitable expert to write a decent J2EE example? They invented J2EE, afterall!
      First Entity Beans were good - and now they are bad. What other surprises can we expect? Who should an average Java programmer believe?

    4. Re:Final Conclusion by j3110 · · Score: 2

      It's a demo of how the API's work, and how they work together. It's not meant for you to cut-and-paste to your own enterprise system. You have to design an enterprise system. Alan Cox is a great programmer, but you couldn't clone him 5 times and have the 6 of them just sit down and make an enterpise application. If there was a best way to do enterprise programming, there would be a wizard and all you enter is some VB code that computes the tax for area or some such. It's a set of bloody tools. You use them the way that you need them. The demo is so you don't use a monkey wrench to drive a nail, that's all.

      Entity beans are good! BMP Entity beans are bad. They have always been bad. You use them when you can't use CMP. If you really want speed, you use JDBC directly in the session beans. Stateful session beans are bad. Only use them if you can't use Stateless session beans. How hard is it to understand that each one is relatively bad to another, but if you should run into a problem using one, you still have the good old sledge-a-matic that will do the job for a price.

      --
      Karma Clown
    5. Re:Final Conclusion by Anonymous Coward · · Score: 0

      Are you high??? That's a rather ignorant response. Why don't you:
      1) Read the report up to page 5 or so,
      2) Download both codebases from the links provided,
      3) Set them up, run them, and see for yourself.
      4) apologize to TMC for your rude remarks, considering it's far easier to be derogatory than to code in either Java or .NET you techno-weenie...

    6. Re:Final Conclusion by Anonymous Coward · · Score: 0
      First Entity Beans were good - and now they are bad. What other surprises can we expect?

      Hmm, you got that backwards... first they were bad, now they're quite good.

      Meaning, the container developers are finally learning how to create efficient implementations of the entity container.

    7. Re:Final Conclusion by Anonymous Coward · · Score: 0

      SUN doesn't need to make a good example, developers need to RTFM or by a GOOD book to tell them when and where things SHOULD be used, not where they can. J2EE isn't for pet stores to begin with.

      Ever looked for Java books? All of them are varations on "PetStore" -- telling you how to cram as many Java TLAs into your application & resume as possible.

      It's only been recently (like, since this whole PetStore debacle) that the Java fanatics started to grow some balls and started speaking up about how crappy and slow Entity Beans are, and I doubt any of that has worked it's way into the bookstore yet.

      I mean, it doesn't take a genius to figure out that adding an entire extra out-of-process layer to your application that fundementally relys on client-side database joins is going to be f-ing slow. But all the JavaLobby types were good little tools and continued to push technology that only existed to sell Sun hardware and cover a couple of edge-cases.

    8. Re:Final Conclusion by Anonymous Coward · · Score: 0
      extra out-of-process layer

      out of process? get a fucking clue.

  8. Much more interesting - a leaner JPetStore by slamb · · Score: 5, Informative

    jPetStore 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.

    1. Re:Much more interesting - a leaner JPetStore by steve_l · · Score: 2

      yes, comparing a lightweight struts/JDO impl running on Jetty would be more interesting.

      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.

    2. Re:Much more interesting - a leaner JPetStore by DopeRider · · Score: 1
      They produced, using Jakarta Struts, a Java pet store web application that is much leaner.

      I thought that it was Java "official" platform for enterprise apps what was being compared, not Java as a language and libs found in the net.

      Now let'w write a Perl/PHP/Python/Apache - Postgresql version of this pet project.

    3. Re:Much more interesting - a leaner JPetStore by slamb · · Score: 1
      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.

      In fairness to EJB, that was The Middleware Company's (Microsoft's) assertion that two people took five weeks to tune it as well as possible. From what the Dreambean people said, I think that's a complete lie.

      But I absolutely agree that EJB is weird, ugly, and limited.

    4. Re:Much more interesting - a leaner JPetStore by slamb · · Score: 1
      I thought that it was Java "official" platform for enterprise apps what was being compared, not Java as a language and libs found in the net.

      Maybe, but struts is more what real people use, so that comparison is much more valuable.

      Now let'w write a Perl/PHP/Python/Apache - Postgresql version of this pet project.

      I'd love to see that. It'd be great to have a single reference application coded in a million different ways so it's easy to compare them and see what's easiest.

    5. Re:Much more interesting - a leaner JPetStore by rburt3 · · Score: 1

      It'd be great to have a single reference application coded in a million different ways so it's easy to compare them and see what's easiest.

      Hello world?

    6. Re:Much more interesting - a leaner JPetStore by dringess · · Score: 1
      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.

      Part of it comes from IBM's influence. EJBs are a thinly veiled rewrite of an failed IBM technology called Component Broker. CB was CORBA-based, hideously complex and slow as molasses.

    7. Re:Much more interesting - a leaner JPetStore by Anonymous Coward · · Score: 0
      Maybe, but struts is more what real people use

      Bullshit.

    8. Re:Much more interesting - a leaner JPetStore by Tablizer · · Score: 1

      I'd love to see that. It'd be great to have a single reference application coded in a million different ways so it's easy to compare them and see what's easiest.

      But there are other ways to compare besides just code size. For example, being "change-friendly". This is at least as important as code size IMO. Most programming effort is spent making changes, and not creating the original.

    9. Re:Much more interesting - a leaner JPetStore by fitten · · Score: 1

      "Change friendly" depends a lot on how the app was written... I can write something in any language that is change unfriendly. I can also write something in many languages that is change friendly.

    10. Re:Much more interesting - a leaner JPetStore by joib · · Score: 2

      Well, considering that you have been bashing OOP and evangelizing your "table-based" programming (or whatever you were calling it) for God knows how long, here's an excellent chance for you to demonstrate the superiority of your approach. Are you still going to implement it on DBASE with file-polling for "clustering"? :)

    11. Re:Much more interesting - a leaner JPetStore by Anonymous Coward · · Score: 0

      Thanks for pointing that out! I've been reading all day long about jakarta.apache.org's Struts and Tomcat, and this is very pertinent.

    12. Re:Much more interesting - a leaner JPetStore by slamb · · Score: 1
      "Change friendly" depends a lot on how the app was written... I can write something in any language that is change unfriendly. I can also write something in many languages that is change friendly.

      Right, but I'm talking about much more than just the language. The jPetStore and the official J2EE Pet Store Demo are both Java/J2EE applications, but they have totally different methodologies. It would be interesting to see one for each framework.

    13. Re:Much more interesting - a leaner JPetStore by slamb · · Score: 1
      But there are other ways to compare besides just code size.

      No idea where you got the idea that was the only way I thought to compare. I've mentioned:

      • code size
      • performance
      • separation of languages that require a different way of thinking. I.e., separate Java and SQL. separate Java logic and HTML/JSP view components. (and with MVC, separate controller.)
      • automatically generated code (which the JPetStore people feel should be avoided. I agree)

      All of these (and more) would be easier to evaluate with a common, non-trivial example.

    14. Re:Much more interesting - a leaner JPetStore by Tablizer · · Score: 1

      Well, considering that you have been bashing OOP and evangelizing your "table-based" programming (or whatever you were calling it) for God knows how long, here's an excellent chance for you to demonstrate the superiority of your approach. Are you still going to implement it on DBASE with file-polling for "clustering"? :)

      I have been kicking around that idea. Although I would *not* use Xbase, I bet Xbase could still kick Java's ass for a web version. (My fondness for Xbase was in its nimble table handling, which is not found on the big-iron DB's. However, that does not mean that everything about it is good. You are exaggerating with sound-bite digs. I could kick Java's ass using MySQL or Oracle also.)

  9. Price/Performance page 25 says it all by Pov · · Score: 5, Insightful

    Regardless of how you argue the testing parameters, it's pretty clear the .NET implementation won out. Even if it didn't, the Price/Performance chart makes this a pretty easy pick for most businesses.

    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 .NET stuff is cool and people should take notice. Even the evil empire can raise the bar. And competition helps us all in the end. Lower those prices SUN and Oracle!!

    --
    --- Don't be a player hater: I meta-mod ALL negative mods as Unfair.
    1. Re:Price/Performance page 25 says it all by steve_l · · Score: 5, Insightful

      That's what comes of BEA and WebSphere pricings; if they'd used jboss or HP-app server (still a free download, I believe), app server cost becomes zero, leaving only hardware, OS and database. Move to hypersonic SQL or postgres to take oracle out the loop and you start to get economic performance. Sure, per-cpu perf may be less, but what if all those CPUs are just blade mounted PIII-8000 parts running your favourite linux distro?

      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.

    2. Re:Price/Performance page 25 says it all by Pov · · Score: 2

      That's a very good point, but a difficult sell to management. From my experience if management gets sold on J2EE or anything Sun related, they swallow the whole damn load.

      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. .NET is very easy to code with and it's very fast to develop in. That's why I would go that way, but there are always good alternatives.

      --
      --- Don't be a player hater: I meta-mod ALL negative mods as Unfair.
    3. Re:Price/Performance page 25 says it all by CommandNotFound · · Score: 2

      M$ has a lot of problems, but this .NET stuff is cool and people should take notice. Even the evil empire can raise the bar. And competition helps us all in the end. Lower those prices SUN and Oracle!!

      Yes, and they (MS) are creating their own monster by focusing on price. The more they train the market to look at "lower cost" vs. Oracle and Sun, the more legitimacy they give to Linux, MySQL, PostgreSQL, and PHP vs. Microsoft. Bring it on, I say.

      On the other hand, I seriously doubt the 2K vs. 14K lines of code is legitimate. If it is, there is a lot of opaque, drag-n-drop, hope-it-just-works development in the smaller one. A size ratio like that might happen when comparing against maybe C and stdlib for web apps; then again, I think even using printf's and socket calls one could get closer than that.

    4. Re:Price/Performance page 25 says it all by iSwitched · · Score: 2, Insightful

      While I agree that .NET concepts are cool, the reason is because much of the concept is so obviously based on Java, only the names have been changed to protect the innocent.

      I further believe that the .NET implementation would probably turn out to be marginally faster even in a truly fair comparison. It doesn't surprise me that Microsoft engineers working on a Microsoft platform could optimize more heavily than java, which at some point must run up against the constraints of the JVM implementation on the given platform.

      BUT -- raw speed isn't the issue all the time. A quick google turned up the fact that MS has between 40% and 49% of the server OS market (depending on whose figures you believe). Linux at about 25% and everyone else. I write java code for a company with a significant number of customer who are either wholly in the 51% or run mixed environments.

      Here's the kicker -- it is totally possible for java to realize the write once run anywhere promise on the server side, we're doing it. The fact that we don't have to port the app from platform to platform is a significant saving for us. Our customers enjoy greater compatibility, faster updates, increased feature set and LOWER PRICES. Our more adventurous customers then lower their TCO even more by running the app on any of the extremely well-written open-source app servers available.

      MS trained us to view discussions such as these in business terms, not technical ones -- and they loose the argument on business terms.

      (and yes, I do know .NET is being ported to other platforms, but if I can't use it today, it may as well not exist).

      --
      "That naive cube! How long must I suffer this!" --Sheldon J. Plankton
    5. Re:Price/Performance page 25 says it all by scosol · · Score: 1

      Yeah... enter jboss

      Suddenly the ratio swings-

      Lats face it, intitial software cost is still a *large* part of TCO...

      --
      I browse at +5 Flamebait- moderation for all or moderation for none.
    6. Re:Price/Performance page 25 says it all by Anonamused+Cow-herd · · Score: 1

      .NET stuff is cool and people should take notice. Even the evil empire can raise the bar.

      Whoa. You must have missed the "any comment about Microsoft that is not presented in a negative light will get you shot" memo that was floating around last week.

      Anyway, isn't fundamental misattribution the best trick?

      Yay!

      --
      -----[0_o]-----
      We are not amused.
    7. Re:Price/Performance page 25 says it all by Tablizer · · Score: 1

      The more they train the market to look at "lower cost" vs. Oracle and Sun, the more legitimacy they give to Linux, MySQL, PostgreSQL, and PHP vs. Microsoft. Bring it on, I say.

      It would be cool to see a "performance / price" chart having OSS columns with a bunch of infinity signs all over it.

    8. Re:Price/Performance page 25 says it all by The+AtomicPunk · · Score: 1

      Actually, I'd be surprised if performance wasn't BETTER with postgres and say, Resin ($500/server) than Oracle and BEA.

      I've used all of them. =)

    9. Re:Price/Performance page 25 says it all by Anonymous Coward · · Score: 0
      Regardless of how you argue the testing parameters, it's pretty clear the .NET implementation won out. Even if it didn't, the Price/Performance chart makes this a pretty easy pick for most businesses.

      ... assuming (all) their servers are Windows servers? Locking you to single server-side platform is the biggest real problem with .NET, and probably will remain so. MS doesn't have real motivation for changing that lock-in, although they do want to make it appear less significant than it is.

      As to 'lower those prices'; yeah, Oracle is a pig, but most (~all) software Sun ships is free. Not that you need much any Sun software for J2EE (after all, you don't directly pay for J2EE references but for app server; and if you choose Sun's, that comes for free these days).

    10. Re:Price/Performance page 25 says it all by Anonymous Coward · · Score: 0
      And competition helps us all in the end. Lower those prices SUN and Oracle!!

      Open the Java spec! GPL the JVM!

  10. Policy by Anonymous Coward · · Score: 0
    So, someone writes about a (relatively) geeky stuff that does matter to some of us, and slashdot deems it uniteresting. Someone people take issue with the methodology and conclusions, and whoops, it gets on the front page.

    Slashdot: Controversies for Nerds. Stuff that someone wants to bitch about?

  11. Starting off strong by sootman · · Score: 3, Funny

    Quote from the article: It contains both errors, halftruths, and lies.

    Unfortunately, the article contains both spelling errors, grammatical errors, and errors of style.

    --
    Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
    1. Re:Starting off strong by glwtta · · Score: 2

      I actually found this rather heartening - the author just might be an actual developer :)

      --
      sic transit gloria mundi
    2. Re:Starting off strong by yog · · Score: 2

      Actually, I think it's pretty well written, considering that Rickard's from Sweden. In fact, his English is so idiomatically good you were fooled into thinking he's a typical semi-literate American, haha!

      --
      it's = "it is"; its = possessive. E.g., it's flapping its wings.
    3. Re:Starting off strong by Anonymous Coward · · Score: 0

      Unfortunately, the article contains both spelling errors, grammatical errors, and errors of style.

      "both"? you have 3 points here, not two.

  12. Infringement.... by Tsali · · Score: 1, Interesting

    I didn't read the article (naturally), but doesn't the EULA for most Microsoft stuff explicitly forbid benchmarking .Net without prior consent from Microsoft?

    Can someone explain this so I can read the article later? :-)

    I'm just looking for Python/Qt benchmarking. :-)

    --
    This space for rent.
    1. Re:Infringement.... by loconet · · Score: 2

      Well, thats why .NET came up on top, because they probably _did_ ask MS for permission ;)

      --
      [alk]
    2. Re:Infringement.... by jamesangel · · Score: 1

      Since Microsoft apparently paid for the report in the first place, that probably indicates their approval, no?

    3. Re:Infringement.... by pbranes · · Score: 2, Informative

      If you were to read the article, you would find this text at the bottom, "Update 2002-Oct-30 Several independent sources have now confirmed that The Middleware Company was indeed paid by Microsoft to conduct this report." Therefore, they obviously had approval from Microsoft to conduct the benchmark.

    4. Re:Infringement.... by MORTAR_COMBAT! · · Score: 2

      prior consent from Microsoft might be assumed, when Microsoft is paying the company to run the benchmarks in the first place.

      --
      MORTAR COMBAT!
    5. Re:Infringement.... by omerhj · · Score: 1

      TMC performed the benchmarks in a Seattle lab provided by Microsoft. Microsoft paid their travel expenses to Seattle. The benchmark results ended up in Microsoft's favor.

      I'm sure Microsoft has no problem at all waiving their benchmarkverbot.

  13. It's not the language by Anonymous Coward · · Score: 1

    Folks, it is not the language that determines service and transaction throughput. There are much more important factors:

    1. Back end database speed
    2. Request queueing
    3. Object pooling
    4. Sheer network bandwidth
    5. ACID overhead
    blah blah blah

    There are probably a few dozen other things that all have a much larger effect than the speed at which bytecode gets compiled and executed.

    J2EE vs .NET is not about Java vs. C#, ok??

    In any case, .NET wins.

  14. hmm... by SpanishInquisition · · Score: 3, Funny

    this is like trying to make a race between a tortoise and a snail, only to realize that your stopwatch doesn't go over 15 minutes.

    --
    Je t'aime Stéphanie
  15. J2EE, EJBs vs "JSPs" by kisrael · · Score: 3, Interesting

    I've heard some word (admittedly not many datapoints) that some companies are still embracing Java/J2EE, but are going for "JSPs" (hopefully a euphamism for good use of regular java objects, maybe some wrapped JDBC) instead of the fullbore EJB. In my experience, this is a very smart thing. I've had successes with using a lot of the same patterns recommended for EJB with the lighter-weight stuff, and have heard of at least 3 really collosal EJB failures.

    EJB makes it easier to have physically seperate tiers, and adds enough systems-needed overhead that you'll probably need 'em...

    --
    SO YOU'RE GOING TO DIE: The Comic for Dealing with Death
  16. Benchmarks for tasks with N-number of variables... by Art+Popp · · Score: 4, Interesting

    ...are interesting when well researched, but basically useless to anyone who would actually have to choose between these two development environments. If you work for a company that designs applications of this kind there will be a host of more important things to consider than raw transactions per machine. The simple fact of e-commerce is that if a user is actually going to buy something at your site, you can waste tremendous processing power making them happy. If you make 2 dollars profit on a transaction and had to use 20% of the CPU on a 2Ghz processor for 40 1 second bursts (like you will if they shop using RH interchange), it's still worth it. What this benchmark argues well is that the MiddleWare product is probably worth buying if you have processor constraint problems. No amount of increased performance would warrant changing a staff of experienced Java programmers into a staff of inexperienced .net programmmers. Extra processors are just too cheap....

  17. Yeah, but... by Schnapple · · Score: 5, Insightful
    Isn't The Middleware Company the same one that produced this report for SUN Microsystems and concluded that J2EE is the better of the two platforms for a variety of non-performance-related reasons? I think this report is one of the best, most coherent reports on what exactly J2EE and .NET really are and what the differences are.

    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).

    1. Re:Yeah, but... by skaffen42 · · Score: 1

      I particularly like this paragraph from the previous Middleware Company Report:

      When trying to choose between whether these features are important for your organization, consider the quality of your developers. If they are well-educated and do not require much hand-holding, then they will likely find the flexibility and performance gains from a J2EE system as valuable. If your developers require more hand-holding, then the Microsoft approach is clearly superior.

      FUD. It's all FUD. No matter whether it is Sun FUD or M$ FUD.

      But at least it is entertaining. :)

      --
      People couldn't type. We realized: Death would eventually take care of this.
    2. Re:Yeah, but... by tshak · · Score: 2

      Have you even BEEN to the Microsoft Campus? it doesn't matter that they're all in the same campus - you can't just run over from Building 3 to Building 42 when you have a performance question :-)

      --

      There is no longer anything that can be done with computers that is nontrivial and clearly legal. -- Paul Phillips
    3. Re:Yeah, but... by styrotech · · Score: 3, Funny

      Well you're right, the average slashdot geek probably couldn't run from building 3 to building 4 anytime.

    4. Re:Yeah, but... by Anonymous Coward · · Score: 0
      That's why they invented email.

      Now a BEA engineer trying to get performance tips from Oracle engineer (where Oracle does not make only a DB but a competing J2EE app server) is much trickier. You can't just fire off 3 random emails a day to get tips on how to implement this thing so that you get optimal db performance.

      So yeah, it does make a difference if the solution comes from a single vendor or not.

  18. Lies, damned lies by PhysicsScholar · · Score: 3, Interesting

    OK, first off, I don't care how many lines of comments or exception-handling routines you take out, the Microsoft solution was still 7 times smaller. If a sub at two different stores costs the same $5.00, I would definitely buy the 7-inch one over the 1-inch version for the same price; essentially, it's better no matter how you cut it (no pun intended).

    Furthermore, if Yahoo moves from C++ to PHP for the majority of their Web applications, I think that's saying something. Perhaps J2EE and .NET are irrelevant at this stage in the game, and a PHP vs. ASP review would be more relevant.

    --

    Department of Physics and Atmospheric Science, Dalhousie University, Halifax, N.S., Canada, B3H 3J5
    1. Re:Lies, damned lies by nogoodmonkey · · Score: 1

      How about Perl vs. every other language. :-)

    2. Re:Lies, damned lies by Anonymous Coward · · Score: 0

      setting aside all the 'size doesn't matter' jokes, the reason .NET code is smaller is because .NET abstracts more.

      for this test, Middleware took available components, the objects and proceedures that were already defined. They didn't write any of their own. They took the generic shit in the API and hoped it would work. In this situation, it's similar to attempting to compare Java and assembly. In java, you don't even think about specific memory addresses because the API doesn't need u to.

    3. Re:Lies, damned lies by rdean400 · · Score: 1

      The problem is that LOC was apples to oranges. Microsoft used the bundled .net libraries that take most of the grunt work out, but the J2EE version didn't even use the Java Standard Tag Libraries, Struts, or any of the other Java analogs to core .net functions.

      It'd be different if the 14K was considering use of those tools, but it's not.

    4. Re:Lies, damned lies by bmj · · Score: 1

      amen...i wish i had mod points. i've been doing a lot of .net work lately (got to put food on the table), and their data view components can really speed up development, at the cost of some extensibility. having worn both hats (developing .net web apps and writing custom tag libraries for java web apps), there is no doubt that using the .net components greatly reduced the lines of code. of course, like many others have pointed out, that does not a good application make.

      the .net components are fantastic for a high pressure, short timeframe project. but...try and do something outside the norm with them and yer screwed. but such is life with a 1.x release.

      --
      Whereof we cannot speak, thereof we must be silent. --Ludwig Wittgenstein
    5. Re:Lies, damned lies by gnovos · · Score: 2

      If a sub at two different stores costs the same $5.00, I would definitely buy the 7-inch one over the 1-inch version for the same price;

      But if you were buying an anal supposetory for your hemmerhoid flare up, would you still be so eager to chose the 7" over the 1"?

      --
      "Your superior intellect is no match for our puny weapons!"
    6. Re:Lies, damned lies by Sentry21 · · Score: 2

      Perhaps J2EE and .NET are irrelevant at this stage in the game, and a PHP vs. ASP review would be more relevant.

      PHP doesn't offer the same things J2EE and .NET do though. PHP is a scripting language, J2EE and .NET are web application development platforms. The difference, in the easiest way I can think of it, is that PHP & ASP let you make pages, while J2EE & .NET let you make applications with web interfaces, basically. The distinction is a tricky one to make, but it's there nonetheless.

      --Dan

  19. Backwards by smileyy · · Score: 1

    You got those numbers backwards.

    .NET: 2,096
    J2EE: 14,004

    It's not surprising that the more recently language takes fewer lines of code, given that it has had the time to look at Java and some of its structural shortcomings in terms of verbosity.

    --
    pooptruck
  20. Couldn't Resist Though, Eh? by 4of12 · · 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.

    --
    "Provided by the management for your protection."
  21. bleh by Anonymous Coward · · Score: 0

    I read the numbers and am not impressed. Though I do appluad the effort, next time Middleware should take care to use the right tools for the job. I dont care what the bluieprints say, if you use EJB for this type of apllication, you are a fool, and deserve the performance hit you get.

    In addition, why don't they tell us the app servers they used? Why do they use 1.3.x instead of 1.4, which is over 50% faster?

    On top these questions, and several more, remember, java is portable.

    If you are in an MS environment, it makes sense to use .NET, however, Microsoft has yet to demonstrate to me why I should go out of my way to use it.

  22. Re:Starting off strong - Future slashdot editor by Camel+Pilot · · Score: 5, Funny

    Unfortunately, the article contains both spelling errors, grammatical errors, and errors of style.

    Great! The the author is sufficiently qualified to become a slashdot editor.

  23. Incorrect Citation by Scotch+Game · · Score: 1, Redundant

    Aaeennnnnggghhhh, sorry, wrong answer, thanks for playing.

    The report states the exact opposite, 14,004 for J2EE, 2,096 .NET.

    The linked rebuttal raises some valid questions about the accuracy and importance of that stat, so take it for what it's worth ...

  24. J2EE vs. .Net by EggplantMan · · Score: 0, Troll

    J2EE will always lag in performance to .Net technologies due to its interpreted nature. When will you people finally understand this?

    --

    ?-|||-----x<*))))><
    1. Re:J2EE vs. .Net by Anonymous Coward · · Score: 0

      And .Net is not interpreted? Hello, it's basically a Java copycat, complete with the virtual machine and bytecode approach! Plus, Java is not always interpreted; there is a spectrum between fully native compiled and interpreted, and with Hotspot and JITs Java can be almost anywhere on that spectrum that it needs to.

    2. Re:J2EE vs. .Net by Twirlip+of+the+Mists · · Score: 2

      Are you trolling? Java server stuff isn't interpreted. Servlets and beans are compiled by the developer, while JSPs are compiled by the server (into servlets, incidentally) on demand. Some servers automatically compile all JSPs at start-up, while others wait for a request before compiling. Once all the JSPs have been compiled, Java server applications run as native, compiled Java bytecode.

      --

      I write in my journal
    3. Re:J2EE vs. .Net by Anonymous Coward · · Score: 0

      J2EE will always lag in performance to .Net technologies due to its interpreted nature. When will you people finally understand this?

      Ignorance and /. go hand in hand. Java "byte code" has been being compiled to native code on Wintel since '96.

    4. Re:J2EE vs. .Net by loconet · · Score: 2

      Compiled Java Bytecode != Interpreted.

      php,perl == Interpreted

      --
      [alk]
    5. Re:J2EE vs. .Net by Anonymous Coward · · Score: 0

      Actually, properly implemented Java should only be interpreted the first time, or am I the only person using the JIT compiler.

      Java's main performance hit is running code over the virtual machine which is essentially one polymorphism dynamic run-time bind overhead binding. However, JVM's have been getting better.

      However, i still remain a C/C++ gnu tools kind of a guy.

    6. Re:J2EE vs. .Net by Anonymous Coward · · Score: 0

      You're both wrong. Both languages are compiled the first time they are run. .NET does not use a virtual machine, either. It uses what is called a "Common Language Runtime." This means you can write the code in any supported language and they all compile to the same binary code. This allows VB programmers to continue to program in their chosen language without sacrificing performance (as they did in the past). This is also why .NET is theoretically portable. It still requires a compiler for each system it will operate on. This is what the Mono project is about for Linux. Thank you for your ignornace, though. I always enjoy it.

    7. Re:J2EE vs. .Net by _avs_007 · · Score: 1

      Actually, .NET is NOT interpreted. It is compiled at runtime. And can even be compiled at development time.

      Even though Java has JITs that allow compiling all the byte code, from what I've read and heard, the JVM itself still has interpreted code in it. The .NET runtime does not. In fact I read that's what MS's main goal was....

      In my experience, in all the projects that I've had to dual develop in Java and .Net, the C# was always faster than the Java version... But it was all good. The only thing that was irritating was that the Sun JDK on Windows has different behavior then the same version of the Sun JDK on linux... But thats a whole nother thread ;)

      YMMV

    8. Re:J2EE vs. .Net by Anonymous Coward · · Score: 0

      "Java server stuff isn't interpreted. Servlets and beans are compiled by the developer"

      --- MY GOD GO BACK TO SCHOOL!!!!!! I can't believe you messed up on such a trivial point. If you haev a college degree go back to the university and say i am no longer worthy of my CS degree

    9. Re:J2EE vs. .Net by rodgerd · · Score: 2

      Perl is not interpreted and has not been for a long, long time.

    10. Re:J2EE vs. .Net by Anonymous Coward · · Score: 0

      Maybe he means that the developer becomes one with the computer. I mean there are times when I feel like my laptop and I are one.

    11. Re:J2EE vs. .Net by Svartalf · · Score: 2

      Bytecode == Emulated CPU == Interpreted...

      --
      I am not merely a "consumer" or a "taxpayer". I am a Citizen of the State of Texas
    12. Re:J2EE vs. .Net by Anonymous Coward · · Score: 0

      Byte code JIT compiled into Machine code in the SERVER JVM == real CPU != Interpreted but thanks for your miss informed and abusive reply

    13. Re:J2EE vs. .Net by Anonymous Coward · · Score: 0

      Oi Tosser read his entire commend "applications run as native, compiled Java bytecode." He means that the byte code is compiled into machine code. So the program is running as NATIVE machine code instructions much the same as you mozilla does while you read your p0rn.

    14. Re:J2EE vs. .Net by toriver · · Score: 2
      the JVM itself still has interpreted code in it

      No, the JVM is all native (it has to be in order to run). You must be thinking of the "system classes", but they, too, are JIT-compiled.

    15. Re:J2EE vs. .Net by grungeman · · Score: 1

      >Bytecode == Emulated CPU == Interpreted...

      This was true. Sun's Hotspot JVM compiles frequently used parts of the code on the fly to native code. This gives a pretty interesting effect with some operations getting faster the more often they are performed.

      --

      Signature deleted by lameness filter.
    16. Re:J2EE vs. .Net by khuber · · Score: 1
      Perl is not interpreted and has not been for a long, long time.

      Perl is interpreted, it just doesn't use a bytecode representation. Java is much faster than Perl in my experience because Java is compiled (at runtime).

      -Kevin

  25. Rigged and all but... by Cpt_Corelli · · Score: 1

    Why is it that Java on IBM/Sun always seem to require hefty amounts of hardware to get any performance to speak of?

    Is it just me or does someone else see a pattern here?

    1. Re:Rigged and all but... by Anonymous Coward · · Score: 0

      Because nobody puts large apps on Windows. They're still all the ASP - fill in page - update DB that are so simple that they fall into the realm of "kid in high school can do".

    2. Re:Rigged and all but... by Anonymous Coward · · Score: 0
      "Because nobody puts large apps on Windows."
      • That's funny ... too bad it's not true.
  26. Regus Reporting? by Yankovic · · Score: 3, Interesting

    Anyone find it particularly hilarious that the Register couldn't even report the results correctly? Fine that they get anti-MS people to put in quotes, but the facts of the case (namely 14k lines of code for java v. 2k lines of code for .NET) were reported in reverse? Ugh... how these guys have a website is beyond me.

  27. Surprised by Anonymous Coward · · Score: 0

    OSS loses again, you people complain.

  28. And in other news by photon317 · · Score: 1, Offtopic


    CNN is reporting on a widely-publicized 1/4-mile drag-race between a broken lawnmower and an earthworm.

    --
    11*43+456^2
    1. Re:And in other news by photon317 · · Score: 1


      Offtopic? It may be colorful, but pointing out that both competitors in a performance test are slow is certainly on-topic. Next time try Troll, Flamebait, or any other mod rating that's synonymous on Slashdot with "I don't agree with you"

      --
      11*43+456^2
  29. Sheesh by Reality+Master+101 · · 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.

    --
    Sometimes it's best to just let stupid people be stupid.
    1. Re:Sheesh by zenyu · · Score: 2

      Anyway, is anyone really surprised that .Net is going to be much faster than Java?

      Have you used .NET? It's slow as a dead dog. Intrepreted Java is faster. The only reason it hasn't been published is that the friggin EULA doesn't allow you to publish the numbers.

      I hear people saying how neat it .NET or C# is and I just wonder. If this were '91-92 sure, but it's friggin 2002, and their flailing about trying to implement a Java 0.9 lookalike, with an extra special JNI pre-processor.

    2. Re:Sheesh by dnoyeb · · Score: 2

      Yes of course, I would be surprised in a fair comparison that the young .NET would be faster than Java. Running natively of course .NET code will be faster, but running inside the VM as it should be for a comparison I would expect .NET to be slower since its so much younger.

      Its appearently that so many hear are defending C++ and therefore M$. Very strange phenomonon. The report showed how rediculously LOADED the comparison was, but nobody seems to RTFA.

    3. Re:Sheesh by j3110 · · Score: 2

      Yeah... that's driving my crazy too. Does no one understand what BMP means? It's slower because it is uncached AND there is a seperate call to the database for each row + 1 to get the keys. I don't care if it was writtin in assembler, that's gonna be SLOW! :) Then on the MS side, they cache data as well as 1 big SQL statement to return rows. That's about as fair as comparing the P4 to the Athlon when the Athlon has L2 cache turned off. Yet the parent poster doesn't see the obvious and gets modded up knowing nothing about the technologies at hand. And what's worse is they had to go out of their way to make it BMP, because CMP is so much easier. No legitamit claim will ever use BMP.

      --
      Karma Clown
    4. Re:Sheesh by Anonymous Coward · · Score: 0

      Ran the Pet Store with both .NET and Java versions. Used Empririx load tool to simulate 50 users in order to stress test the apps. I have results that show that the .NET app did not scale very quickly and came out slower than the Java version. .NET is not quicker.

    5. Re:Sheesh by gakguk · · Score: 1
      Have you used .NET?
      Yes.

      It's slow as a dead dog. Intrepreted Java is faster.
      Really? Any numbers? SUN would love to hear them.

      You may pointing to the fact that, on the first use .NET IL code is compiled into native code. Since we are talking about applications used enterprise-wide 7/24 (and not about re-compiling and running Hello World! over and over again), this is not an issue. If you create an installer for the app, you may even pre-compile it at install time.

    6. Re:Sheesh by Anonymous Coward · · Score: 0

      The thing is that the critique comes from Richard Oberg. He is sort of a "Carmack of J2EE".

    7. Re:Sheesh by Anonymous Coward · · Score: 0
      .Net is going to be much faster than Java?

      A component framework is going be much faster than a programming language?

      I think you must be fucking stupid.

    8. Re:Sheesh by Fjord · · Score: 2

      Actually, it's even worse than that. Getting the keys and then getting the data for each key is O(log(n)*m) while getting the data and iterating is O(log(n)*log(m)). If you're getting back 50 results, that can mean the calls take about 20 times longer. There is a pattern called "Fat Key" which deals with this (essentially, you return the key with the data you fetched, and instead of doing another db lookup, you get the data out of the fat key). Unless you're careful, this can still take O(m) memory, whereas using a stateful session bean and iterating through will give you O(1) memory use.

      --
      -no broken link
    9. Re:Sheesh by j3110 · · Score: 2

      In my previous post I meant to say that the data isn't cached on the client, BMP/CMP is cached on the server.

      hehe... but fat key design isn't exactly up to best practices though. :) I never thought about the stateful session bean idea you mention. That's very clever. If ever my data access model doesn't fit Entity Beans, I'll be doing that :) Right now, people loading a bean(avg 10 stddev 10 so 70% chance 20) will usually end up changing it or accessing it again in the very near future.

      --
      Karma Clown
    10. Re:Sheesh by Fjord · · Score: 1

      I can't lay claim to the stateful session bean idea. It's actually from the J2EE Design Patterns. It's the Value List Handler Pattern. The patterns in that catalog are actually pretty good, 11 of the 15 I had done before reading the list, so they are pretty natural fits for when making applications.

      --
      -no broken link
  30. An awful review by ellisDtrails · · Score: 1

    "It is bad for MS (really), because they are linking to this report, helped create it, and will be using it as a marketing tool against J2EE. They are used to being called FUD-makers, but perhaps not in this way."
    Give me a break. This guy's position is that because the J2EE code wasn't written the way he would have written it, then the results which overwhemingly favor Microsoft actually hurt Microsoft? Bwaahahaha. Time to stop making excuses for underperforming application servers. Besides the test was called "J2EE Petstore vs. .NET petstore," not "Some guys version of petstore vs. Net petstore." Take the test for what it is. Both statistically and anecdotaly .NET performance is better than J2EE -- I haven't seen a case study yet that can refute this.

  31. I have no problem with microsoft's coders.. by tenchiken · · Score: 5, Insightful

    It's their business ethic I can't stand. .NET is the most exciting thing in distributed component programming since Objective-C and NeXT. Unlike, Microsoft has enough influnce to acutally make a new programming language part of the vernacular that programmers use.

    I have deployed two different production systems off of .NET, and have been utterly amazed at the API. While C++ has about 50/50 curve (50% of the things are really easy to do, the other 50% suck) and Java raises that to about 70/30, C# and more importantly the .NET framework allow programmers to naturally write good n-tier applications. (In fact, my biggest critique on .NET is that it tends to force people to n-tier when that is not completly appropriate).

    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. .NET is component oriented. Refliction, delegates, events, emission, cross domain calls and third party language itneroperability are all first class in .NET...

    Now, if Microsoft's business guys would just follow suit.

    1. Re:I have no problem with microsoft's coders.. by plumby · · Score: 3, Informative
      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

      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.

    2. Re:I have no problem with microsoft's coders.. by I'm+not+a+script · · Score: 0

      Tell me you didn't pay for that brainwash session.

      --
      kthx
    3. Re:I have no problem with microsoft's coders.. by ivancich · · Score: 1

      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.

      The Java Virtual Machines from Sun contain Just-in-Time compilers and HotSpot technology and have for quite a while now. Thus the bytecode encoding has minimal impact on run-time and will often have at worst a fixed up-front cost for the entire life of an application.

    4. Re:I have no problem with microsoft's coders.. by Anonymous Coward · · Score: 0

      Tell me you didn't pay for that brainwash session.

      Man, it would just fucking suck if someone told their honest opinion and it disagreed with yours, wouldn't it? You're as brainwashed as he is, if you can't accept the possibility of an alternate viewpoint.

    5. Re:I have no problem with microsoft's coders.. by fitten · · Score: 1

      Religion at its finest! =)

    6. Re:I have no problem with microsoft's coders.. by EddieSam · · Score: 1

      .NET is the most exciting thing in distributed component programming since Objective-C and NeXT

      Oh, please! .NET is nothing that hasn't been done before, and it's missing a lot of stuff that other distributed systems have had forever.

      SUN RPC has been around forever. CORBA has been around for a long time. Both SUN RPC and CORBA use a binary on-the-wire format for efficiency. .NET uses high-overhead XML for everything. Both SUN RPC and CORBA allow for operations on objects, where SOAP only allows static functions (Why's the 'O' in SOAP anyway?!).

      .NET is an exercise in marketing and leveraging a monopoly. There's no new technology here.

    7. Re:I have no problem with microsoft's coders.. by Anonymous Coward · · Score: 0
      (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

      Someone needs to pick up a basic introductory book to EJB and understand the difference between entity and session beans.

      HTH

    8. Re:I have no problem with microsoft's coders.. by tenchiken · · Score: 2

      Someone would prefer to use a model that does not require me to think beyond simple business rules in the first place. Thinking about the difference in "beans" in kinda absurd.

      Oh, and that model is faster, semantically cleaner and more interopable? I can't understand why more people don't use it (yet)....

      Just like Carbon, C++, this stuff will take a bit to catch on, but catch on it will.

    9. Re:I have no problem with microsoft's coders.. by Anonymous Coward · · Score: 0

      You'll be pleased to know that .NET Remoting has the features you mention and more. And it does add novel features:
      * RPC without having to write IDL
      * Pluggable RPC plumbing
      It can also use COM/DCOM transparently to access serviced components (ie COM+ objects).

  32. Show me the money by evilpenguin · · Score: 2

    The important question to me is does each application platform scale with commodity hardware? If so, then the more important question is which takes less time to develop and what is the availability and price of programmers for each platform? Hardware is cheap. Development time is expensive.

    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.

  33. Apples and Oranges by moogy · · 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 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.


    --
    Blah Blah Blah
    1. Re:Apples and Oranges by siegesama · · Score: 1

      Not to nitpick, but JPetstore does use J2EE-- it just doesn't use EJBs. JDBC, JSP, etc are all considered J2EE APIs.

      --
      what the hell is a 'junk character', anyway?
    2. Re:Apples and Oranges by CaseyB · · Score: 2
      The original J2EE version of the Petstore application was meant as an EDUCATIONAL example for those new to J2EE. ... No one in their right mind would use J2EE or EJBs to implement the Petstore app.

      Wrong. Pet Store was built as a demo illustrating the "best practice" implementation of J2EE. It's Sun saying "This is how you should build YOUR apps.". As such it's fair game (and the perfect choice) for platform performance comparisons.

      From the site:
      "The JavaTM Pet Store Demo is a sample application from the JavaTM 2 Platform, Enterprise Edition ("J2EETM") BluePrints Program at Java Software, Sun Microsystems. It demonstrates how to use the capabilities of the J2EE 1.3 platform to develop flexible, scalable, cross-platform enterprise applications.

      The JavaTM BluePrints Program program helps developers create robust, scalable, and portable applications by providing guidelines, patterns, and code that illustrate best practices on how to build end-to-end applications using Java technology.

    3. Re:Apples and Oranges by liloldme · · Score: 1
      Wrong. Pet Store was built as a demo illustrating the "best practice" implementation of J2EE. It's Sun saying "This is how you should build YOUR apps.". As such it's fair game (and the perfect choice) for platform performance comparisons.

      Not really. Unless you're going to claim next that building all your business logic into DB stored procedures, and storing parts of the web page HTML into DB rows is a recommended way to build applications.

      (This is what .NET version of PetStore does)

      And well, if you're going to claim that anyway, then you can have your .NET. I don't wanna touch it with a ten foot pole :)

  34. It's the query that matters by vanguard · · Score: 5, Insightful

    I've been building web applications since 1997. In nearly every app I write most of the time is spent gathering and sorting the data, not in presenting the page.

    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?

    --
    That which does not kill me only makes me whinier
    1. Re:It's the query that matters by Laura_007 · · Score: 1

      You obviously aren't involved with high-usage websites then, with loads of simultaneous requests from hundreds or thousands of users: It can mean the difference between one server, or three servers. I've found a dramatic difference even in something as trivial as relying on a default document: i.e http://wwww.mywebpage.com/ versus actually referecing it directly http://www.mywebpage.com/default.asp. Does this matter to a small intranet with huge queries? Probably not. Does it matter to large ecommerce sites, or enterprise sites? Absolutely.

      --
      I am looking to accumulate friends. Please click on the circle and add me as a friend. Thanks!
    2. Re:It's the query that matters by Pfhreakaz0id · · Score: 2

      Yeah, because a "default document" for a web server actually gives a 302 - moved return header, along with the default.asp filename. The browser then requests this document, so it involves an extra response/request cycle.

    3. Re:It's the query that matters by Laura_007 · · Score: 1

      Not on IIS, at least. IIS responds as if the user had requested the default document specifically, however the process of resolving the default document (especially where people have a list of default documents "just in case") can take a relatively considerable amount of time.

      --
      I am looking to accumulate friends. Please click on the circle and add me as a friend. Thanks!
    4. Re:It's the query that matters by Pfhreakaz0id · · Score: 2

      I may be confusing it with what happens when you do a response.redirect in ASP. I remember tracing headers (to resolve an authentication issue... don't ask) and being surprised at the 302 header. I always just figured IIS just switched the document, but actually, it sends the 302 back and the browser requests the new document.

      I tried going to this http header viewer, but I couldn't really find a site to verify, but I think you are right, and I'm confusing it with the above situation.

    5. Re:It's the query that matters by Pfhreakaz0id · · Score: 2

      http://www.rexswain.com/httpview.html

    6. Re:It's the query that matters by Anonymous Coward · · Score: 0

      Not on IIS, at least. IIS responds as if the user had requested the default document specifically, however the process of resolving the default document (especially where people have a list of default documents "just in case") can take a relatively considerable amount of time.


      If the user requested the default document specifically, IIS has to check a list?!?! From what I remember Apache just opens the file. IIS must suck.

    7. Re:It's the query that matters by Anonymous Coward · · Score: 0

      I know the feeling. That's why I switched to apache + mod_python + quixote + zodb + zeo. Yippeee! Transparent persistence, aggressive caching, elegant design, easy to use. Downside: sparse, outdated documentation.

    8. Re:It's the query that matters by Laura_007 · · Score: 1

      No, if the user requests the default document, e.g. http://www.someurl.com/somedirectory/, rather than a specific file, e.g. http://www.someurl.com/somedirectory/default.asp, then IIS references its list of default documents. This default document list is stored as, well, a list, and IIS goes through each one checking if the file exists (I know because I'd written a ISAPI filter that actually cached these and it sped things up considerably). index.html...nope...index.htm...nope... default.asp...nope...default.aspx...bingo!

      --
      I am looking to accumulate friends. Please click on the circle and add me as a friend. Thanks!
    9. Re:It's the query that matters by vanguard · · Score: 1

      FYI, I'm a tech lead on one of the planets largest ecommerce systems. We do about $20B in sales over our website every year. I'll admit that we don't handle the traffic that amazon or yahoo do. However, your guess that I'm working on a small intranet site was off target. Vanguard

      --
      That which does not kill me only makes me whinier
    10. Re:It's the query that matters by Thomas+Charron · · Score: 2

      The largest eCommerce site, yet doesn't handle the traffic of amazon or yahoo?

      Ok, I'm confused now..

      Your facts do not make sense.

      --
      -- I'm the root of all that's evil, but you can call me cookie..
    11. Re:It's the query that matters by vanguard · · Score: 1

      It's not the largest site but it is large. Because our average order size larger, we outsell amazon but we do not get more traffic. If I remember correctly, the largest site in terms of sales is Intel and I'm sure they don't get that much traffic.

      --
      That which does not kill me only makes me whinier
  35. Abstraction at nauseum by gdeciantis · · Score: 2, Interesting

    One point about the refuting article is that it talks about the merging of data and business logic layers stretches the idea of object oriented. Although the code be less reusable, merging the two layers is in fact a very intuitive way to piece an application together and doesn't overload a project with excessive classes. As well the GUI will tend to dictate what functions can be performed. If the code is just gonna be used in that one page I don't think code should be anywhere than in that page.

  36. BMP used, so the numbers are ballooned by Anonymous Coward · · Score: 0

    The key reason teh Java version had so many LOC is that BMP EJBs were used. There are few good reasons to use BMP EJBs. They require a lot more code to be written, they're less portable between databases, harder to maintain, and they have an enormous overhead (see the N+1 database connection problem).

    If they had used CMP EJBs, they would have dramatically decreased the LOC and taken care of all the maintainability, portability, and performance issues described above.

  37. performance of programmers by axxackall · · Score: 3, Interesting
    Run-time performance is really a concern for system administrators, integrators and IT managers. The difference in run-time performance should be compensated by faster hardware, which gives a difference in cost of ownership. I expect such difference will be significantly less comparing to the difference in cost of software production, which is in essence a difference in performance of programmers, which in own turn time is very expensive.

    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?

    --

    Less is more !
    1. Re:performance of programmers by dodobh · · Score: 2

      Hmmmm, I would rather pay for the better programmer.
      Run time might not matter for the desktop, but on the server side, it does matter a whole lot.
      Unless you are just comparing web applications, server side performance matters a whole lot.
      There is a *significant* cost difference between high performance apps and low performance apps in runtime. On low end hardware, Perl is 2-3 times as fast as Java for the same application (daemonized SNMP monitor for a few devices on a switched network). Oh, and Perl used less resources too.
      And I don't want Perl doing the truly high performance stuff either. I prefer to use C code.

      --
      I can throw myself at the ground, and miss.
  38. well duh by papskier · · Score: 4, Insightful
    Microsoft wrote the .NET version, while these "experts" wrote the Java version - I stopped right there. Of course if you actually have the people who created the technology in the first place they're going to be able to build a faster app - they know everything inside and out of the technology. It's ridiculous. Show me a comparison between a team of Microsoft employees and a team of Sun employees and I might consider it good enough to be annecdotal at best.

    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 .NET or Java, so I guess I'll have to judge them on the merits of their realistics pros/cons.

    --
    Crowded elevator smell different to midget. -Chinese Proverb
    1. Re:well duh by GrayCalx · · Score: 1, Insightful

      Are you even reading the other posts or the article? Apparently not, as stated already the lines of code were reveresed in the Register's report. J2EE used 14k while .NET used 2,600.

      So according to your theory, the Javaites used inline, and they were still slower.

      But also pointed out, does length of code really matter beyond time of development?

    2. Re:well duh by papskier · · Score: 1

      OK, so while I was writing this it came out that .NET was 2600 lines and Java was 11,000 or so lines... how embarrassing, but I guess that's what I get for trusting other sources... in any case, the point still stands - if you create a technology, then you're in a better position to use it to it's best advantage than if you simply learned it to become an "expert".

      --
      Crowded elevator smell different to midget. -Chinese Proverb
    3. Re:well duh by fitten · · Score: 1

      heh... so you make your conclusion fit to the facts then =)

      First, .NET was bigger so it was better obviously because they inlined and knew what they were doing. Now, .NET is smaller so the same thing =) I love /. readers and their religions =)

    4. Re:well duh by eyeN · · Score: 1

      no, dumbass. MS wrote the .NET verstion and Sun Wrote the J2EE version. what you read was that MS optimized the .NET version and TMC optimized the J2EE version.

  39. Here are the reasons why this comparsion is BS by darthaya · · Score: 5, Insightful

    BS stands for bullshit.

    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 .Net. a design clearly aimed at performance and competition, MS declared their petstore is much faster than Sun's. It is a absurd and ridiculous marketing trick only MS could think out. (when they hire poople, they do ask them to think out of box by asking some stupid tricky questions, do they?)

    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 .net one.

    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 .Net VS two outdated version of j2ee app servers.
    2. using Wintel machine for .Net. VS linux for j2ee. (linux version of j2ee usually is the slowest one because other venders always tuned to their own hardware first, then windows, last resource is given to linux, recently IBM
    and Oracle changed their priority i think.)
    3. using extensive cache for .Net VS using the slowest and now abandoned BMP Entity Bean for j2ee. (the new CMP Entity Bean not only faster, but also has very good cache machanism.and directly jdbc perhaps even faster if you only
    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.

    1. Re:Here are the reasons why this comparsion is BS by djaxl · · Score: 3, Informative

      Couldn't find the 10 times faster than .Net comparison by Oracle, but:

      http://www2.theserverside.com/resources/article.js p?l=PetStore

      http://www.oracle.com/features/9i/index.html?9iasf ast.html

      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 .Net, at 750 users, there's obviously some difference in benchmarking practices. If anyone has a link to the "10 times faster" propaganda, please post.

    2. Re:Here are the reasons why this comparsion is BS by Anonymous Coward · · Score: 0

      Dude, have an english speaker proofread your posts for you, okay? I'm sure you said something interesting in there but I didn't have the patience to wade through it.

    3. Re:Here are the reasons why this comparsion is BS by Anonymous Coward · · Score: 0
      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

      you mean "best practices" and "good design patterns" put forth by the manufacturer aren't intended for "real world applicaiton"s [sic]?
  40. Thought it was illegal. by www.sorehands.com · · Score: 3, Flamebait

    I thought that this type of benchmark was breaching the EULA from Microsoft. But, after reading the report I found it to be legal. Since the benchmarks put .NET into a good light, then it is ok. If the benchmark put .NET in a bad light, then the benchmark is not allowed.

  41. Lines of code has nothing to do with reliability? by Scotch+Game · · Score: 2

    Well ... that's not *entirely* true, no.

    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 ... to name a few.

    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 ... Well, if the implementations truly were correct and fair examples, then it's a no-brainer to state that 2,000 lines of code is a helluva lot easier to maintain than 14,000, therefore making it more reliable and, possibly, scalable.

    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.

  42. "Twirlip of the Mists" by Anonymous Coward · · Score: 0

    Given your user name and other info, I expected a troll.

    It sure is a good thing that no one takes you for an idiot because of your unbelieveably stupid user name.

    Mods, please mod this racist jerk DOWN. Mr. Judging-by-appearances here doesn't deserve the karma he's getting.

  43. .NET is a lot faster by datrus · · Score: 1

    plenty of benchmarks on http://dotnetguru.org/

    1. Re:.NET is a lot faster by Jugalator · · Score: 3, Funny

      .NET is a lot faster

      plenty of benchmarks on http://dotnetguru.org/


      Yeah, I see that... from the URL.

      --
      Beware: In C++, your friends can see your privates!
    2. Re:.NET is a lot faster by Anonymous Coward · · Score: 0

      Yeah, and Microsoft products are the best. Check out http://www.microsoft.com/ if you don't believe me!

      AC

  44. Register was Wrong by copponex · · Score: 0, Offtopic

    From the newly updated article,

    But the benchmark throws up the remarkable statistic that the Java version required 14,004 lines of code, while the .NET version featured just 2,096 (and not the other way round, as we originally stated). The benefit of hindsight, or is one of our class libraries missing? ®

    Are all of your linux gurus just scared of MS having a better product or what? Here's a news flash:

    MICROSOFT ALREADY HAS BETTER PRODUCTS

    WindowsXP / Office XP / XP Server is still the killer app that people are buying regardless of the high cost, simply because there's no other product on the market right now with that feature set and ease of use. Now, most of their server stuff is expensive and slow for many web hosting applications, but don't discount their products just because of the Corporate namesake in front of them.

    1. Re:Register was Wrong by Anonymous Coward · · Score: 0

      What type of fruitcake response is that?
      Did you benchmark either MS or Linux systems, how the hell would you ever know what ones put out decent products or not.

    2. Re:Register was Wrong by jaaron · · Score: 2

      Apparently I'm a sucker for trolls today.

      The article has nothing to do with linux. It's about JAVA vs .NET which is a whole different ballpark. You're arguement about MS and their fine products makes no sense in this case. The Java programming language and environment is much more mature than .NET and is being used for many critical applications. When it comes to enterprise computing, Microsoft is a newbie and is just starting to produce something to consider, and if you would take time to really investigate the matter, you'd see that the benchmarks which suggest .NET as faster are generally flawed.

      --
      Who said Freedom was Fair?
  45. Not exciting? by targo · · Score: 3, Insightful

    You would have been jumping up and down with excitement, had the results been the other way around. Let's try to have at least an illusion of objectivity, OK?

    1. Re:Not exciting? by fitten · · Score: 1

      No way... not from this crowd...

      Rule #1: Linux ownz0rs all!
      Rule #2: See Rule#1

      Posting *anything* on this board that 'beats' Linux/Unix in any way and it will get flamed for being FUD, false, biased, or (insert your favorite invalidating comment here).

      The only tests that are praised for being fair and accurate are the ones that say Linux/Unix is better/faster/stronger/cheaper/etc.

    2. Re:Not exciting? by Laura_007 · · Score: 1

      I think that, while your rules are correct, there is a parallel set of rules that most Slashdotters obey:

      Rule #1: Microsoft is satan incarnate, and everything they make sucks.
      Rule #2: Anyone who opposes Microsoft is the community's hero.

      We've seen this quite a few times with monoliths like Sun or AOL-Timewarner-CNN-Netscape taking a shot at Microsoft and being held in the highest regard. It must really hurt slashdotter's conscience to do that having just finishing ranting aout DRM or something of said company the previous day.

      --
      I am looking to accumulate friends. Please click on the circle and add me as a friend. Thanks!
    3. Re:Not exciting? by fitten · · Score: 1

      I like /. a lot but I also make sure I temper everything here knowing the enormous Linux/OSS slant/religion (even to the point of making other flavors of Unix-a-likes 2nd class citizens), I'm OK =)

  46. Re:Starting off strong - Future slashdot editor by Anonymous Coward · · Score: 0

    I think he did that on purpose.

    Wait, let me read it again.

    Yes, indeed, he did thise on purpose.

  47. Maybe, except by tkrotchko · · Score: 2

    Since in MS's eyes, the ASP world should move to ASP.NET, how do you divorce ASP from .NET? You really can't.

    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.

    --
    You were mistaken. Which is odd, since memory shouldn't be a problem for you
  48. michael's a troll by Anonymous Coward · · Score: 0

    And unless he can post an article where he can interject his opinion (everything he likes is cool, everything he doesn't like SUCKS), it won't get in.

    TROLL

  49. Re:Save your time (and mirror) by rgbrenner · · Score: 1

    Oh, one interesting fact, "the .NET version required 14,004 lines of code, while the Java version featured 2,096."


    Actually the results say the exact opposite. Here are the exact numbers from page 40 of the benchmarks:

    .NET | J2EE
    User Interface: 1,002 5,567
    Middle Tier: 795 6,187
    Data Tier: 197 197
    Configuration: 102 2,053
    Total: 2,096 14,004

    I agree with you thats its a waste of time. The pdf basically says that .NET is far faster, cheaper, and uses fewer lines of code than J2EE. It also says that for best results, you should use .Net 1.1 and Windows.NET Server 2003 (Hmm, is that a version that hasnt been released yet?).

    BTW, ive put up a mirror in case thier server crashes:
    http://home.earthlink.net/~rgbrenner/j2eedotnetben ch.pdf

  50. Register article has been updated... by Anonymous Coward · · Score: 0

    But the benchmark throws up the remarkable statistic that the Java version required 14,004 lines of code, while the .NET version featured just 2,096 (and not the other way round, as we originally stated).

  51. Re:The sad thing is... by Anonymous Coward · · Score: 0

    It's not about loving Linux. It's about loving Freedom (TM). And that means not having a centralized conduit for information exchange. It means my computer being mine.

    Without resorting to FUD, tell me how writing an application using Visual Basic .NET or Visual C# .NET is a violation of your Freedom (TM).

    Besides, the comparison was between J2EE and .NET. Tell me about how one is inherently more Free than the other, without resorting to FUD.

  52. Uhhh, why is it suddenly newsworthy? by coupland · · Score: 3, Insightful

    Soooo..... When .NET beats the pants off J2EE it's not newsworthy, but when someone questions the results it is? Surely if one is worthy of posting on /. they both should be...

    1. Re:Uhhh, why is it suddenly newsworthy? by _xeno_ · · Score: 1
      I read that more as:

      "We heard about this yesterday. Just like every other benchmark in the history of benchmarks it came out in favor of the company sponsoring it. Today people have started posting coherent arguments about why the benchmark is unfair, which is about as newsworthy as the sun rising in the morning, but we want you to stop submitting it already!"

      At least, that was my take :)

      (And based on several other stories that were basically "we didn't think it was newsworthy, but at least 500 of you did, so here it is!" Followed by it again next week, and then again in a month...)

      --
      You are in a maze of twisty little relative jumps, all alike.
  53. Re:Neither of these is actually used by justine_avalanche · · Score: 1
    customers do not want to have to type "java someprog.class"
    If you are going to say something like this, at least get it right, it's
    • $ java someprog


    JA
  54. You've got it reversed. by nobodyman · · Score: 5, Interesting


    Did you intentionally reverse the figures? The .NET version was 2000 lines of code, and the Java version was 14,000 lines of code

    Why not go to the source 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 .Net version used stored procedures instead of dynamic SQL statements (Sun advises dynamic sql for easier portability and because they are idiots). This time, they addressed the Java camps' gripes and J2EE still lost!

    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.

    1. Re:You've got it reversed. by rnd() · · Score: 2

      .NET is a very well designed platform. Did you notice that the Middleware Company's business is dependent on their Java knowledge?!? Sounds like they're saying "Sun, get your act together".

      --

      Amazing magic tricks

    2. Re:You've got it reversed. by smugfunt · · Score: 1
      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.

      Obviously you did not read the rebuttal.
    3. Re:You've got it reversed. by Fugly · · Score: 2

      I have to disagree with a few of your statements. J2EE has its place. It's the best tool out there for many enterprise jobs IMHO. EJB's come at a cost but you get something back for that cost.

      I know that when you're doing work for myWannabeEcommerceSite.com, they might not appear to be very useful. However, when you're working in a real enterprise environment where you need assorted systems to interoperate and the flexibility to tie them together in new ways in the future, EJB's are a sound investment. There's a difference between having a 2-way intel box in the corner of your basement running a site with a couple thousand visitors per month and selling products to hundreds of thousands of customers per day on your website while taking phone orders, catalog orders, serving people in over 2000 retail stores and handling your own warehousing/shipping.

      EJB's are exceptionally useful in this environment. That's not to say that .Net isn't useful btw, I just feel much more comfortable running our mission critical servers on Sun and IBM hardware and operating systems. Until I'm sold on intel and windows as a reliable and secure server OS, .net will not me an option for me. And being as I would likely use Linux or FreeBSD first on intel hardware, it's probably going to be awhile :)

    4. Re:You've got it reversed. by natet · · Score: 1
      If you read the review listed in the /. story, you can see that
      1. The .net implementation was not in any way a good example of "best practices." It was well optimized, but at the expense of good design practices.
      2. The J2EE code was not fully optimized. The author of the review also doesn't mention that in some instances, an older version of the JRE had to be used, resulting in performance decreases.

      I for one will always be suspecious of benchmarks paid for by a particular company to compare their product with a competitor, whether it be Microsoft or anyone else.
      --
      IANAL... But I play one on /.
    5. Re:You've got it reversed. by pvera · · Score: 2

      You sir are completely correct. It takes an idiot to recommend dynamic sql over a stored procedure on a SQL Server 2000. Portability my ass, after you buy a license for SQL Server 2000 on a server farm you are not going to scrape it off and move on to Oracle, so all that crap about portability is an old scare tactic by Oracle.

      I spent a long miserable year building asp apps and being forced to use dynamic sql because my company was an Oracle shop and they were counting on charging the customer more a few months down the road to move up to Oracle. Once one of our high profile products started to choke under load so they let us switch to stored procedures. We had pages that used to load in 50+ seconds that as once switched to stored procedures started loading in 5. That's a 1000% improvement. The day I walked away from that job I promised myself that any and all future work I do on a SQL server environment is going to exploit stored procedures and user functions, portability be damned.

      Read the PDF, the Java folks had plenty of chances to rewrite their stuff. Had the second version of the .net app kept the stored procedures the results would have been much more embarrassing.

      --
      Pedro
      ----
      The Insomniac Coder
    6. Re:You've got it reversed. by fitten · · Score: 1

      I think a better rebuttal would have been for DreamBean to have (re-)written the code for the J2EE benchmark like they describe and rerun the tests. They only have to publish the J2EE benchmark numbers, thus avoiding any issues with Microsoft. Instead, the easy way out is to publish a paper describing what they would have done and promise us that it would have been better. They tell us not to take the word of a group who publish numbers then expect us to take their word with nothing more than their promises of better performance.

    7. Re:You've got it reversed. by zapfie · · Score: 1

      Wow.. a troll at +5.. well done, my friend. Well done.

      --
      slashdot!=valid HTML
    8. Re:You've got it reversed. by Anonymous Coward · · Score: 0

      It as been rewritten for a while. Check out ibatis.com

    9. Re:You've got it reversed. by wickedhobo · · Score: 1

      You sir, are a fucktard. Did you actually look at the different code bases? The J2EE edition uses a multitier approach for data access, while the .NET combines a couple of these. So first that breaks the test goals anyway, but second it does a huge job cutting down lines. Second, the Exception handling is no good, total bloat. Maybe if you should stop spewing.

      Third, the EJB's each have to implement the EJB methods, even though they are empty methods. So if the J2EE system moved these into a common superclass the code would be cut down. .NET doesn't even have an Entity Bean equivalent. So this would have cut down the code base as well.

      Oh, and how about the fact that they used an OLDER version of Weblogic, and OLDER version of the JDK (1.3x vs 1.4x with NIO and about 2000 performance enhancements), Distributed (XA) Transactions and OLDER version EJB 1.1 instead of EJB 2.0.

      So please explain to me why this was a good test when MS used their latest stuff while the J2EE stuff was much older. Also, how come MS got to tune their .NET application, while BEA wasn't even invovled in the test of the app run on their server.

      Are you actually a server-side developer?

      So why don't you tell me why they used

      --

      --Stupidity is Self Curing!
  55. ..and a big "duh" comes out of the audience... by Anonymous Coward · · Score: 0

    "And I mean real applications, like MS Word or Quicken"

    Ha ha ha. I imagine stupidity must be inherited, because you're a dumb son of a bitch.

    Since MS Word and Quicken are windows based applications, and since they predate .NET by 15 years, and Java by 10 years, I'll let you figure out why those apps are written in C/C++/VB.

    I know even *you* can figure it out.

  56. Error rates by Animats · · Score: 3, Interesting
    What went wrong with "J2EE App Server B"? After two hours, it choked completely. But they don't say why. Even "J2EE App Server A" got 40 errors. The .NET servers supposedly completed the 24 hour load test without errors.

    Incidentally, all this stuff was run on Windows 2000. Somebody should try it on Linux.

    1. Re:Error rates by generalpf · · Score: 1

      Read the .PDF. They did try it on Linux, and it was faster on Windows 2000.

      Without "green" threads, you're running one process per thread on Linux, which sucks.

    2. Re:Error rates by cs668 · · Score: 1

      It is not true that you are running one process per thread on Linux.

      Linux process monitorinng tools just display them that way.

      You are actually running real threads that share the space of their parent process.

  57. The real question by Melantha_Bacchae · · Score: 2

    Speed isn't the issue. These are two different beasties with different purposes:

    J2EE is a language/platform on which to build tools to run your business.

    Microsoft's .Net is a johnny-come-lately Java-alike that is designed to be a last minute substitute for the Borg JVM (I kid you not, they actually called it that). It is the platform to run Millenium on so Microsoft can finally achieve world domination. Microsoft Research didn't spend all that time and money on an "operating system for the next millenium" just to scrap it, you know.

    So what do you want to do? Run your business? Or be a loyal vassal and bow to King Microsoft?

    Funny thing about thousand year kingdoms by tin plate dictators: they don't last a day when the one true King of Monsters comes to town. ;)

    Shinoda: "The age of Millennium."
    Io: "What does that mean?"
    Shinoda: "A thousand year kingdom. It wants to create a home for itself. There is one flaw in its plan: Godzilla."
    "Godzilla 2000 Millennium" (Japanese version)

    1. Re:The real question by rodgerd · · Score: 2
      J2EE is a language/platform on which to build tools to run your business.


      That'll be why the Java app servers kept throwing errors and crashing, while the .NET stuff just worked, right?
    2. Re:The real question by Anonymous Coward · · Score: 0

      uuh no. that'll be why this test was rigged. any braindead idiot can install a java app server which never throws an error. the sandbox takes care of 90% of the work unless youre a total idiot lik these guys.

  58. I'm just waiting. by glh · · Score: 3, Interesting

    There will probably be another J2EE implementation that can "beat" the .NET benchmark. However, I think there is some degree of truth to this particular one. At our .NET User Group Meeting last night, we had someone from Microsoft actually talking about this benchmark. He didn't go into much detail on the J2EE side, but said that the MiddleWare company spent 10 weeks trying to get the J2EE implementation tweaked. So either these consultants are really incompetent on the Java platform, or there really is a significant performance difference.

    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 .NET could *ever* be faster/better/etc. than J2EE. So really, it's a religious thing and I don't think any amount of proof will convince him. And I'm sure there are certainly others out there thinking that way. Of course the other camp also believes .NET is "all that".

    1. Re:I'm just waiting. by cs668 · · Score: 2

      It is interesting to see how the funding of benchmarks/reports can impact the outcome.

      Look at Ibatis JPetstore to see what one guy did with jpetstore in response to the .net version and its over inflated LOC difference.

      When looking at his example and documentation you can really see how easily you can sawy one of these benchmarks/reports.

    2. Re:I'm just waiting. by glh · · Score: 2

      I'd like to look into it a little more, but that's cool he got it down to a decent LOC. I wonder what he did to reduce the LOC from the TMC version?

      In addition, here is the "criteria" that TMC had to follow according to their report. I wonder if some of the criteria forced certain design decisions that caused more code.


      1. The J2EE and .NET implementations had to be 100% functionally equivalent with
      no behavioral differences.
      2. Both applications had to be created according to best-practice coding standards
      such that each serves as a valid design pattern that real customers can follow
      when building their own applications.
      3. Each application had to be a logical three-tier implementation, with the use of
      well-partitioned components to encapsulate middle-tier business and data access
      logic.
      4. The applications had to be designed such that they can each be easily clustered
      across multiple middle tier application servers for scale-out.
      5. The benchmarks had to be run with realistic application server and database
      deployment settings that reflect a real-world production deployment.
      6. All source code, data load and test scripts for the benchmark applications (both .NET and J2EE) have been published on the Serverside.com so that customers can
      replicate and verify the results. The source code, database schemas, and test
      scripts used in the benchmark, can be downloaded from: http://www.middlewarecompany.
      com/j2eedotnetbench /.

    3. Re:I'm just waiting. by rdean400 · · Score: 1

      So either these consultants are really incompetent on the Java platform, or there really is a significant performance difference.

      You forgot the third option: the consultants were too lazy to actually rewrite the Sun version of the PetStore, from scratch, to achieve optimal performance. They basically took the Sun code and tweaked it -- this is like putting lipstick on a pig.

  59. was MS involved? by loconet · · Score: 4, Informative


    From their FAQ 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.

    --
    [alk]
    1. Re:was MS involved? by Anonymous Coward · · Score: 0

      Hah. MS was Involved. Everyone knows that for a fact. Nobody in his right mind will trust TMC anymore.

  60. They used BMP by vlad_petric · · Score: 5, Insightful
    ... and claim it's gotten them better performance ? With bean-managed persistence the developer writes the SQL code for accessing the beans; this gives a lot of flexibility, but prevents the container from doing a lot of optimizations.

    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

    --

    The Raven

  61. Re:Benchmarks for tasks with N-number of variables by Anonymous Coward · · Score: 0

    Correct, but you also must consider the total response time for each request. From a user perspective that is the only benchmark that matters.

  62. Jackal Feed by waltal · · Score: 2, Interesting

    When a report is as complete and direct as this benchmark, it is interesting to see what the jackals go after. What body parts are worth flaming/roasting? In this case, ya'll missed two notable points:

    1. Two J2EE platforms by major vendors were tested. One really sucked for air (yeah, tell me performance doesn't matter!). Who were the vendors, all you Java experts reading between the lines? Would you buy that system?

    2. I understand that the .NET versions did not leverage stored procedures on purpose (apparently the first round of benchmarks got criticized for "non-portable" use of the DB!). I'd like to see that performance, because we are talking performance and not portability.

    Chew on this for awhile...

    1. Re:Jackal Feed by khuber · · Score: 1
      Performance doesn't matter for enterprise apps like it might for desktop apps. It's a big consideration, buy scalability and reliability tend to be bigger issues. Performance is rarely an absolute requirement or we'd all code in hand optimized assembly.

      -Kevin

    2. Re:Jackal Feed by Anonymous Coward · · Score: 0

      I think you're forgetting the .NET servers scored better on scalability and reliability - look at the CPU scaling graphs and remember one of the app servers failed after just two hours.

      And performance DOES matter - an application that serves twice as fast may require as few as half the number of CPUs to serve a given user base.

    3. Re:Jackal Feed by khuber · · Score: 1
      I think you're forgetting the .NET servers scored better on scalability and reliability - look at the CPU scaling graphs and remember one of the app servers failed after just two hours.

      Yeah, that's great if your app runs on one box. I mean real scalability with multiple machines, multiple databases, and so on. Many companies can throw hardware at problems as long as the app will scale. An app server failure in this simplistic test proves nothing, though I have seen no indication that .NET is unreliable or won't scale.

      And performance DOES matter - an application that serves twice as fast may require as few as half the number of CPUs to serve a given user base.

      Again, that is just a naive view. CPU is only a part of the picture. Many real enterprise apps will have issues like I/O, database storage, and network access across many machines. The high importance of CPU is a very PC-centric view. In many cases, it's I/O I/O I/O. Mainframes don't have fast CPUs, they have mega I/O and those funky networked DASD drives. All the CPU in the world does you no good if you're constrained by bad I/O and you can't keep it fed with data.

      And guess what, Unix boxes with storage arrays (and mainframes) are the hardware of choice for a lot of data heavy applications. That knocks .NET out of the picture as an end to end solution. I don't doubt .NET is a great platform for some applications or part of other applications, it just isn't the end all be all. Personally I don't like the proprietary nature of Java, but I really can't stand the single OS limitation of .NET. Down at the code factory, we have stuff on Windows, Solaris, AIX, and Linux plus there are bridges from the mainframes. J2EE/Java is far from perfect, but at least it is more flexible from a hardware standpoint.

      -Kevin

  63. SOAP problems by Kenneth+Stephen · · Score: 1

    Could you elaborate on your statement please? What specifically are the problems you encountered with the SOAP API?

    --

    There is no such thing as luck. Luck is nothing but an absence of bad luck.

  64. futile comparisons? by jdkane · · Score: 1
    Article Says: I, [snip] look forward to an unbiased, well-written benchmark comparing the two platforms for both performance and code structure.

    However maybe it's an eternal comparison of Apples and Oranges. There may be enough differences between the two platforms that a comprehensive comparison is just futile.
    Each platform should be justified on its own merits; each probably meets a need successfully.
    We should be glad that more than one alternative is available because development skills differ and target platforms differ.

  65. Of course Slashdot ignored the article.... by Anonymous Coward · · Score: 0

    Any article that shows Linux kicking MS's ass, they post it even if it was written by some nobody.

    An article with actual benchmarking done by someone else that shows MS kicking Java's ass, "Nah, we'll ignore it, it's not newsworthy."

    God, talk about hypocrites. They slam MS because all they do is print stuff that is hyping themselves, but they don't even realize that they're just a hypocritical as MS by doing the exact same thing. Fuck you Slashdot.

  66. Re:The sad thing is... by Anonymous Coward · · Score: 0

    Michael Simms told him it was a violation of his freedom

  67. RTFA by crawdaddy · · Score: 1

    Did you happen to read the questions posed/points made in the second article? Microsoft PAID for this benchmarking. Throw in a beta of .NET, a J2EE Petstore implementation coded as an example for using all functions, a .NET Petstore implementation coded for performance (by Microsoft, no less), and yes, I'd say that the first article isn't newsworthy, but the second one is.

  68. Are there any reviews that show the opposite? by AxelTorvalds · · Score: 2

    Not surprised by the rigged review but are there any that show the opposite?

    1. Re:Are there any reviews that show the opposite? by the+eric+conspiracy · · Score: 4, Interesting

      Oracle did a study showing the reverse with their app server and database.

      http://otn.oracle.com/tech/java/oc4j/pdf/9ias_ne t_ bench.pdf

      In Oracle's study, they achieved results that were as much as 22x faster than .Net

  69. Microsoft already using the report by grungeman · · Score: 1

    Microsoft is aleady using the report on their webpage for marketing. Check it our here. I wonder how much they paid The Middleware Company to publish such a flawed report. TMC probably got a lot of money, because they sacrificed their credibility in the Java world.

    --

    Signature deleted by lameness filter.
  70. Scalability!!! by Dix · · Score: 1

    Come on! The whole deal with J2EE is scalability.

    The reason for Microsoft introducing .NET and the only interesting benchmarks are how well it scales.

    Give me the data for 5, 10, 20, 50 servers, please.

  71. pipoj;ljl;j by Anonymous Coward · · Score: 0

    This is ridiculous, they used 1.3 which is so much slower than 1.4.

  72. Would like to have seen Jboss used by rgraham · · Score: 1

    I'm not sure how much it would have helped in the performance category but it would have reduced the J2EE implementations cost by $40,000

    1. Re:Would like to have seen Jboss used by Anonymous Coward · · Score: 0

      JBoss is not J2EE certified.

  73. What app servers? by utahjazz · · Score: 1

    'due to NDA...' they couldn't reveal what 'J2EE Server A' and 'J2EE Server B' were. But, they gave enough information that someone should be able to figure it out.

    Like 'Server A runs much better on Windows than Linux', and 'Server B wasn't compatible with JDK 1.4'.

    Can anyone figure out what the app servers are?

    1. Re:What app servers? by Anonymous Coward · · Score: 0

      A=BEA WebLogic (see XML descriptors)
      B=IBM WebSphere (see JDK choice)

  74. When Reviewing Statistics, Follow the Money by Hornstar · · Score: 1

    At present, I am not ready declare J2EE as fit to really "Whip's the Lava's ass!" nor am I prepared to emphatically state that .Net "0wnz", but I will say that the results of this comparison are, without question, highly suspect.

    When a 'disinterested' third party is enlisted by an organization by way of paid favour, that third party no longer remains 'disinterested'. In the case of TMC, if they were paid by Microsoft (which has so far been rumored) to demonstrate the superiority of the .Net architecture, they clearly can not provide an objective comparison between .Net and J2EE.

    Similarly, asking the developers of .Net to create optimized code for the demonstration site while TMC developers create code (which sounds to be less than perfect) for the J2EE example, not only smacks of experimental bias, but completely undermines experimental objectivity.

    The only real way to create an undisputable comparison is to give both manufacturers an identical piece of server hardware, a set of goals to be achieved by the software (sufficiently broad so as to eliminate one-off performance gains) then test the resulting applications head to head under identical load.

    When those criteria are met, only then will we all feel safe declaring a 'winner'.

    Just my $0.02CDN (Approximately $0.012755USD)

    1. Re:When Reviewing Statistics, Follow the Money by jankyPhil · · Score: 1

      They didn't ask the developers of .NET to optimize the app. They asked a "Microsoft Solution Provider" to do it. Very very big difference.

    2. Re:When Reviewing Statistics, Follow the Money by Hornstar · · Score: 1

      Direct from Middleware's site:

      "...For benchmark purposes, Microsoft has provided the Middleware Company with a functionally equivalent revised .NET Pet Shop 2.0 application that conforms to the same specification. This implementation includes support for distributed transactions via COM+ Serviced .NET components; and the equivalent Web service as the revised J2EE implementation.
      See http://www.middleware-company.com/j2eedotnetbench/

      Direct from the horse's mouth, the version compared in this benchmark was provided directly from Microsoft. Whether it was the original developers of .Net that created it is somewhat irrelevant as the optimizers no doubt had access to developmental resources. This is in stark contrast to TMC who would unlikely have access to Sun developmental resources as a third party developer.

      But perhaps that particular angle was overplayed in my original post. My real point, as evidenced by the subject, is that when one evaluates the results of experimentation, always keep in mind the parties that have a vested interest in the results and how prior mitigating factors may influence those results.

      Just my $0.02CDN (Approximately $0.012755USD)

  75. Your history is out of order by gh · · Score: 1

    then came the MS petstore for .Net. a design clearly aimed at performance and competition

    Before Microsoft came out with their version, it was the J2EE vendors that were making performance comparisons for Petstore. Oracle was the first company to start this whole benchmark mess. It was only until the benchmarks were thrown back and forth between numerous J2EE vendors (Oracle, IBM, BEA) did Microsoft get involved.

    J2EE vendors have no one to blame for these bad PR and marketing snafus, but themselves.

    1. Re:Your history is out of order by TheConfusedOne · · Score: 1

      The fact is that the J2EE vendors were looking for some sort of benchmark. At least they were in the apples-to-apples comparison as they were all J2EE app servers.

      MS tried to tar ALL J2EE app servers by staging the first rigged benchmark. This new round isn't much better.

      --
      --- I wish I could hear the soundtrack to my life. That way I'd know when to duck.
    2. Re:Your history is out of order by gh · · Score: 1

      Most of the benchmarks thrown around have not been apples-to-apples comparisons even when comparing J2EE app servers.

      Oracle showed how much faster their app server were compared to other vendors, but they used ORMI not RMI-IIOP or JRMP. Yep, that's apples-to-apples. Then you had companies that provided their own localized EJB implementations before the EJB specs included Locals.

      Right. Apples to apples.

      Even if there was a true apples to apples comparison between the J2EE vendors and Microsoft, people would still bitch, whine, and foam at the mouth that their platform is better.

      Most people don't like to see their side lose. And less people will ever admit that their side lost.

  76. Because the original report was -1 Troll by TheConfusedOne · · Score: 2

    The idea was to not feed the Troll. The methodology of the whole benchmark was at the very least compromised by the active participation of one side and the complete lack of participation from the other.

    (MS did all the code writing and tuning for the .NET implementation. The other side was labeled App Server A and B since they couldn't even be bothered to get permission to publish benchmark results let alone have the App Server companies come and do some tuning.)

    Even if the rest of their claims about "pain staking optimization" of the J2EE code is true they would have to optimize it separately for the two App Servers to be comparing apples to apples.

    So, the original thought was to ignore it and hope it would go away. Obviously many people weren't ignoring it so it hit the "newsworthy" threshhold.

    --
    --- I wish I could hear the soundtrack to my life. That way I'd know when to duck.
  77. Developers, developers, developers! by Inoshiro · · Score: 2

    Lines of code has everything to do with ease of programmer replacment, maintenance costs, and flexibility.

    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.

    --
    --
    Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
    1. Re:Developers, developers, developers! by Fugly · · Score: 3, Insightful

      Lines of code has everything to do with ease of programmer replacment, maintenance costs, and flexibility.

      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.

  78. Re:The sad thing is... by pmz · · Score: 2

    It's about loving Freedom

    Yes it is. Microsoft is frustrating to no end. They are like a playground bully that kicks kids down every time they try to get up. They are the class clown that twists and repeats other people's words to nullify any chance at an intelligent argument. Microsoft's behavior invokes an irrational emotion that in a natural setting results in such a bully being slaughtered in revenge.

    Microsoft to many software engineers is the conceptual equivalent of industrial-age barons, factory housing, and company stores. They are corrupt, everyone suspects or knows that, but so many people are financially enslaven to Microsoft's business model that a revolt is unthinkable.

    I predict that the next decades of the "information age" will mirror the aftermath of the 19th and 20th century industrial monopolies, where only intense victimization of tens of thousands of workers stirs a largely ignorant and sluggish Congress into action.

    As long as the masses of people implementing IT "solutions" are so damn ignorant of how thoroughly they are being so stabbed in the back by Microsoft's breadth of lock-in and leeching contracts, we will not see freedom of information, press, academia, nor social equality in the software and internet industries.

  79. Damn... by Find+love+Online · · Score: 2, Insightful

    It seems like these guys spent a lot of time optimizing for Java, only to see it get the smack down. Of course, there is the issue of how competent they were, but the fact remains that .net is apparently faster for this kind of thing.

    Its kind of crappy that they couldn't name app servers due to 'server B's license, especially since Server B sucked so bad...

  80. Boycott MS products and specifications by gemi · · Score: 0

    Some people say, that you shouldn't boycott MS
    software just because it is from MS. Well, I say,
    you should. Thus only can we get rid of them eventually.

  81. J2EE .vs .NET by ged68 · · Score: 1

    So what IS the best way to go? We currently have applications being developed with the J2EE standard but are going to a .NET infrastructure, servers, databases etc... What would you do/suggest? Ged68

  82. Did no one read the other article linked to? by j3110 · · Score: 5, Informative

    I've been using J2EE now for a while, and they made some hideous performance mistakes. The #1 mistake they made was BMP. BMP, for those of you who don't know, is an object persistance model where each object manages it's own storage. It's pretty obvious that for N rows of a database that map to N objects, you will need N SQL statements. That's just wrong and bad. Not only is it the slowest way to access the database, but it requires 10x the amount of code to work with. The other two (common) choices are CMP and JDBC in session beans (others are JDO and other ADO-ish Java API's that wrap JDBC). CMP would require 1 SQL statement to retrieve N rows, and requires no SQL be written, works on all RDBMS's, and you only have to write a skeleton object. It's about a magnitude of 3 faster than CMP. Directly connecting from the Session beans(pretty much a CORPBA object) will make you write your own SQL, but will increase performance yet further(since you can use stored procedures or just do mass updates and still maintain database independance).

    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 .Net could never hold up to best price/perf. against free. JBoss may not be a speed deamon(it's not slow at all though), but if you disable debugging(on by default), use IBM JDK 1.3.0 and MySQL with innoDB, it will easily win price/performance.

    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 .Net get a foothold, but they are loosing theirs fast.

    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.

    --
    Karma Clown
  83. PLEASE PAY ATTENTION TO THE PARENT POST by Laura_007 · · Score: 1

    Here we have a, not surprizingly, anonymous coward making grand claims about how great J2EE could be if only. I call you on that claim: I challenge all of the Java experts out there, all of who are rushing through this discussion proclaiming that it's all unfair (surprize surprize), to build a functionally equal Java-based PetStore that beats .NET. Okay, how about one that's only 2x slower? 3x slower?

    Let's see some action rather than words. It's so easy making grand claims...

    --
    I am looking to accumulate friends. Please click on the circle and add me as a friend. Thanks!
  84. Fix it then! by jdevons · · Score: 2, Interesting

    If there is a problem with the Java version, can someone fix it?

    Everyone here is all bothered that MS was able to work on their version, but that Sun wasn't asked to do the same for its version.

    Sun can take both the code used in the .NET version and the code used in the J2EE version and compare them and THEN FIX IT.

    If they choose not to do so, or are UNABLE to do so, then we know which is better FOR THIS PARTICULAR TYPE OF WEB APP.

    Middleware did GREATLY improve the performace of the J2EE app, but there are obviously quite a few flaws in their design (from the comments). So someone who is pissed off about this should stop wasting their time ranting about it and correct the problem, then publish the code and the benchmarks.

    --
    I do everything the voices in my head tell me to...
  85. Bytecode by toriver · · Score: 2

    Bytecode == intermediate code fed to a just-in-time compiler == native code on the other end.

    It has been that way for years. You may force the VM to use interpreted code with -Xint, but why would you?

    After all, the bytecode (MSIL) -> native code is EXACTLY what Microsoft does in .Net as well. Except that the .Net runtime caches the native binary for later use, something Sun's Java VM doesn't.

    1. Re:Bytecode by khuber · · Score: 1
      My understanding is that Microsoft doesn't JIT adaptively like Java does, so there's quite a difference in the bytecode to native code translation. Microsoft had a clean slate and Java to learn from and they (IMO) made a simpler design that seems to perform just as well.

      -Kevin

  86. Re:Apples and Oranges - not quite by richieb · · Score: 2
    More nitpicking - Struts is a framework that uses JSPs (actually TLDs). JPetstore connects to a database, so it has to use JDBC. The only thing that's missing is EJBs (maybe there is a good reason for this ;-))

    --
    ...richie - It is a good day to code.
  87. About scalability by Fugly · · Score: 2

    One thing that never seems to be taken into account when it comes to scalability...

    I'd rather maintain a cluster of 5 high end Sun boxes than 50+ wintel machines. Maybe most people don't view this as much of a difference but to me it sure feels like a huge savings in cost and frustration even though the initial purchase price is higher.

    1. Re:About scalability by Anonymous Coward · · Score: 0

      I'm sure I could use THAT on my boss.

      "I dunno, but I have this gut feeling that the 5 high end sun boxes will perform better than the 50+ wintel boxes, even though the price is higher, we'll save money in the long run"

      yeah!

    2. Re:About scalability by Fugly · · Score: 2

      I have the luxury of not arguing it to by boss. We've been using sun servers since long before I was hired at my company. If I did have to argue for it, I'd obviously go out to sun's site and grab a bunch of meaningless statistics regarding cost generated by sun - it seems to work for the microsoft guys.

  88. Every time you read an article praising .Net... by SuperKendall · · Score: 1

    Performance, pull the picture of Bill Gates out of your pocket and take a look at the note on the back:

    "Don't believe his lies".

    Perhaps that will help svae us from repeating the same cycle of comments again and again.

    P.S. - for the moderators, that was a (mildly) clever/humorous movie reference, not a troll.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Every time you read an article praising .Net... by Anonymous Coward · · Score: 0

      Ahh ... "Memento" .. great movie!

  89. Re:The sad thing is... by Junks+Jerzey · · Score: 3, Interesting

    It's not about loving Linux. It's about loving Freedom (TM).

    Realistically, though, we're talking about internet application development platforms here, not basic human rights. Being all high and mighty about not uing .NET is trifling at best, to say the least.

  90. Smells like Mindcraft Spirit by Anonymous Coward · · Score: 0

    Will they have a second test where Java experts will come in and tweak the J2EE just like during the second Mindcraft benchmark where they allowed Linux gurus to come in and tweak the linux machine, yet still get trounced my MS?

  91. Obligatory MP skit Was:Starting off strong by Anonymous Coward · · Score: 1, Funny

    [Ballmer and underlings bursts into room]
    "Nobody expects the stealth Microsoft ad campaign!

    Our main weapon is errors. Errors and half-truths.
    Our TWO main weapons are errors, half-truths and lies.
    Our three main weapons are errors, half-truths, lies and developers, DEVELOPERS, DEVELOPERS!!!!!!!!!!!!!!!

    Oh, let's just start again...

    [They exit - loop]

  92. Did you read the other article? by sterno · · Score: 2

    I read the middleware company's conclusions and was sad to see that Java lost. It looked like everything was pretty legit (certainly more so than some past endeavors like this). But then I read the article refuting it. It seems that there's a substantial amount of optimizations that were not done on the J2EE code that could have had a huge impact.

    Basically when you get down to it, this is an impossible comparison to make. The architectures are different, the app servers are different, and the people writing the code are different. Trying to yield objective results out of such subjective measurements is impossible.

    --
    This sig has been temporarily disconnected or is no longer in service
  93. Precisely! Re:Save your time by WolfWithoutAClause · · Score: 2
    I disagree. If I write an elegant solution that takes up 500 lines, and you write a clunky solution that takes 1000 lines, who was more productive?

    That's exactly my point; perhaps I should have said negatively correlated. The 500 line solution is better- and the same thing written in certain languages tend to be more compact, and hence those languages are generally more productive. C isn't especially, C++ is often a little worse if anything, Java is more compact, Perl even more so.

    Of course compactness isn't everything; APL programs are very compact, but can be totally unreadable. Still, more compact languages are usually better, upto a point.

    --

    -WolfWithoutAClause

    "Gravity is only a theory, not a fact!"
  94. Get a grip people by f00zbll · · Score: 2, Insightful
    Not everything in the world is a stateful application server. It makes absolutely no sense to compare a stateless application server to a stateful one. Go to .NET application server page and look at what it says. For those too lazy, it states emphatically .NET application server does not support stateful persistence management.

    if you want something stateful, you have to do it yourself. Anyone with a clue would never use EJB when all they need is a simple cache of Hashmap. The only thing that tells me is the consultants and the company that did the benchmark are either 1. idiots or 2. doing a poor job of hiding their bias. The fastest way to get blazing speed would have been to use a custom cache in resin with a simple hashmap that handles it for the webapp. Doing transaction in the database isn't the same as an application server that manages transaction in memory using Container Managed persistence.

    It's just the usual marketing bs, move on, nothing to see here.

  95. Re:Benchmarks for tasks with N-number of variables by rkischuk · · Score: 1
    If you work for a company that designs applications of this kind there will be a host of more important things to consider than raw transactions per machine.

    Yeah, like how much longer your company can sustain itself writing software to sell pets over the web.
    --
    Seen any BadMarketing lately?
  96. Nice Filtering by Anonymous Coward · · Score: 0
    "It didn't seem all that exciting, and we sort of ignored the story."
    • Why? Because it showed a Microsoft technology demonstrating significant performance benefits over Java, and layed to rest the complaints of the Java community about the original comparison? Oh, I forgot ... They won't rest until the results are in their favor. It's going to be a long wait.
  97. You've got that backwards by Anonymous Coward · · Score: 0

    It was the Java version that required 14,004 lines of code (and config files, deployment descriptors, etc.). The .NET version was the 2,096 line one.

    Look in the original report, Figure 30.

  98. Criteria are no good if you don't follow them. by TheConfusedOne · · Score: 2

    Well, if you read the rebuttal supplied by one user then you'll see that they didn't live up to those items.

    1. There were behavioral differences with App and Display code combined on the .NET side.
    2. Best practices in J2EE are now aimed at the CMP EJB's in the updated EJB spec. Those weren't used.
    3. Why not a physical three-tier implmentation?
    5. They used a Beta version of MS code versus unknown versions of shipping J2EE servers.
    6. The code was reviewed and some major points were raised with the rebuttal.

    --
    --- I wish I could hear the soundtrack to my life. That way I'd know when to duck.
  99. Yes. Re:Save your time by WolfWithoutAClause · · Score: 2
    After the thinking 1 or 3 lines of code doesn't really matter. Just the fact that it's 1 or 3 lines of wellplanned bugfree code.

    Yes, but experienced programmers tend to spend less time thinking and more time typing; and the thinking you do is often the same or similar for the different languages.

    Also, there are some subtle issues that increased program length gives- the chances of a typo increase with program length- compact code is often easier code, for example in TCL it can take one line to create a button on the screen, whereas in Java it takes about 4- and the Java code is more obscure, and you probably have to check the API to get it right. In C you may have to discard storage after use; in Java you don't need that code- less to break, less to think about. And so on.

    There's lots of little things- and it's not inevitable, it's just a correlation; that is mentioned in the literature.

    Making cross language comparisons is quite difficult; you'd have to take lots of software engineers, normalise for experience and give them the same task to write in different languages, and measure how long they took and how many lines popped out.

    --

    -WolfWithoutAClause

    "Gravity is only a theory, not a fact!"
  100. Lawsuit Time for TMC and their LIES by gavinjolly · · Score: 0, Troll

    The whole review is total CRAP!!! Check out this review of the comparison. It sums up the whole situation pretty well.
    There was no optimisation - it was a stacked deck against J2EE

    --

    The weathers here - Wish you were beautiful

  101. The Register got the #s reversed by Anonymous Coward · · Score: 0

    The Register got the numbers reversed. It was 2K lines of code for .NET and 10K lines of code for J2EE. They've revised their story to reflect this.

  102. Re:The sad thing is... by Anonymous Coward · · Score: 0

    It...was...a...joke

  103. So where are the Unix side-by-side numbers? by corey_lawson · · Score: 1

    Those are the ones I want to see. J2EE vs .Net on Unix.

  104. Missing the point? by DrPepper · · Score: 1

    I do wonder if some people have ever worked in the real world. When developing an application, performance is only one factor. In fact, usually it's quite far down the list of wants when choosing a platform.

    If the performance isn't great, then you can (within reason) add more hardware. Given the cost of hardware, it's not too expensive to do that.

    However, if the application is difficult to maintain, or the skills aren't there to do so (or only available at a large premium), then significant effort (and therefore money) will have to be spent over the lifetime of the system. On any reasonably sized system, these costs will easily surpass the hardware/software costs.

    It all goes back to that lovely 90's acronym - TCO. I'm not arguing for either side, just stating that performance isn't really a major consideration in the areas that EJB and similar systems are deployed.

  105. My conclusion by grungeman · · Score: 1

    The Middleware Company obviously got paid by Microsoft to achieve results in favor of .NET, and they included obvious performance errors into the J2EE implementation to get these results. This leads to the conclusion that you have to make really stupid mistakes in order to make J2EE slower than .NET, which explains why the .NET EULA explicitly forbids the publishing of benchmark results.

    --

    Signature deleted by lameness filter.
  106. Re:The sad thing is... by Anonymous Coward · · Score: 0

    What the hell are you talking about?

    The post you are extending makes no sense. Are you trying to say somthing about not being free to use non-MS products? Get a Grip. There is no one behind me with a gun saying use MS Office, XP,... Or Linux, or Solaris, or .......

    "It means my computer being mine"

    Again - what the hell? The only thing you dont own (but should) is your Taxed property. Be pissed about that, not about fictional shit your making up. And that is your govenment, not any Software Company.

  107. The Java PetStore was never a benchmark by carlfish · · 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 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

    --
    The more I learn about the Internet, the more amazed I am that it works at all.
  108. Totally bogus by Serveert · · Score: 1

    #1) They used Sun's JRE as opposed to IBM's JRE which is much faster.

    #2) They claim there's no way on linux to monitor performance without affecting performance. If they had a clue they would know about sar. This casts them in doubt re: using linux effectively as a whole. They miss a very basic thing, you cannot trust these monkeys, they don't have a clue.

    --
    2 years and no mod points. Join reddit. Because openness is good.
  109. Re:The sad thing is... by Anonymous Coward · · Score: 0

    Yes - that's it! Your right! WOW!

    Hundreds of thousands of engineers are all ignorant.

    Thousands of CIO's & CTO's, tens of thousands of managers and architects - all stupid.

    All these different corporations - all morons for choosing the MS OS(s), MS products, MS development tools, MS solutions.

    Or.. A thought just occurred to me.. (First one ever sense im a mindless drone). Maybe it's not the hundreds of thousands that are wrong but maybe the close minded few that like to spout your kind of crap.

  110. Platypus by any other name would still be but ugly by Anonymous Coward · · Score: 0

    If you design your app to show off all your core technologies in a simple application, best practises can certainly help, but they won't save you from the technology excess.

    A platypus by any other name would still be butt ugly.

  111. Why No JVM On Windows Test? by cmholm · · Score: 2, Interesting
    Using Redhat 7.1 with jdk 1.3.1, the experience of our project team has been that the Linux jvm defaults to FORKING a new process for each java thread. If that's the behavior of the Linux jvm TMC was using, it could have skewed their results.

    What I'd really like to know is why TMC didn't test J2EE on the same Windows OS they tested .NET on. Were they getting paid to bash two opponents at once (Linux, J2EE)? If they really wanted to test J2EE, why not JUST test J2EE?

    --
    Luke, help me take this mask off ... Just for once, let me butterfly kiss you with my own eyes.
    1. Re:Why No JVM On Windows Test? by Anonymous Coward · · Score: 0
      That's how Linux kernel threads work--they're just cloned processes that share page tables. This works because Linux can switch processes faster than some kernels can switch threads (though it makes implementing certain details of POSIX difficult).

      Java provides more platform options than .NET, so why shouldn't that advantage show up in benchmarks by using each runtime's best platform (and ideally hardware, given a budget)?

    2. Re:Why No JVM On Windows Test? by Znork · · Score: 2

      However, if you read the documentation on threading and forking under linux you would realize that it's actually not forking a new process. Read up on clone(2).

  112. Plastic Puppy Poop by MaggieL · · Score: 2
    Astroturfing
    Or whatever properly calls the kind of FUD factory that TSS has turned out to be.

    It's not so much "astroturf", which looks like nice grassgoots from a distance but turns out to be bogus when you get a close look.

    It's more like fake plastic dog shit...looks unpleasant from a distance, but turns out to be phony.

    When I first encountered the site, I dropped them a note asking why all their streaming video was Windows Media when there were perfectly good Java streaming video applications.It seemed awfully curious at the time for folks claiming to be part of the Java community, ,and their response was extremely...well...

    From: Rickard <rickard@middleware-company.com>
    To: Margaret Leber <maggie@voicenet.com>

    Margaret Leber wrote:

    > Doesn't it seem a little ironic that your Hard Core Tech Talks are only
    > available streamed in Windows Media Player format?

    Cynical, yes, ironic, no.

    > Are there plans to
    > present this material in some more platform-independant format?

    Nope.

    However, we're investigating other ways of doing these kinds of interviews in the future, and your feedback is of course valuable.

    regards,
    Rickard

    --
    Rickard Öberg
    Author of "Mastering RMI"
    Chief Architect, TheServerSide.com
    The Middleware Company - We Build Experts!
    So...apparently the debunker of the "benchmark" used to be Chief Archetect at TSS. I have the feeling there's an interesting story behind all this...Rikard's blog should be interesting over then next few days.
    --
    -=Maggie Leber=-
  113. Incompetence rather than malicious act... by GrayArea · · Score: 1, Troll

    I'll go ahead and guess that rather than TMC maliciously rigging the test, the two "experienced" J2EE developers were either incompetent hacks or unprofessional engineers with little pride in their work so it just didn't matter to them. Occam's razor: simplest explanation is most probable...

    It is all the more so stupid of them considering that TheServerSide.com (that also belongs to TMC) would have probably given all the advice they needed if they had asked for it in the first place.

    --
    "The deluded are always filled with absolutes. The rest of us have to live with ambiguity." - Aristoi, Walter Jon Willia
    1. Re:Incompetence rather than malicious act... by GrayArea · · Score: 1

      You must be joking, right? How is this a troll? I'd sure like to get to meta-moderate whoever marked this as troll..

      --
      "The deluded are always filled with absolutes. The rest of us have to live with ambiguity." - Aristoi, Walter Jon Willia
  114. Apples and Oranges by jaaron · · Score: 2

    using the design that Microsoft proposes as best for their product (apparently they forgot to consult you, though) versus the design that Sun proposes for their product.

    That's the problem though. These "benchmarks" are comparing different applictions designed to do different things. Sun does an app for an example of how to use J2EE technology. It wasn't designed for performance, in fact, in many cases the petstore approach is complete overkill. Sun knows that, most Java programmers know that. The petstore app has been heavily criticized for it. However, Sun's point was to show new Java programmers how the different J2EE API's work together. If some poor sap thinks that every app needs designed this way, well, they'll learn quickly otherwise I hope.

    Microsoft then takes an app designed for performance and compares it to one that isn't. It's apples and oranges here folks. That's the point. The arguement made here is that when the Middleware company redid the benchmarks and the Java petstore app, that they still didn't do it properly.

    If it turns out that .NET is faster, so be it. But let's have a fair race. That's all I'm trying to point out. That's all Rickard Öberg is trying to point out in his review.

    --
    Who said Freedom was Fair?
  115. Linux 7.2 by cyborch · · Score: 1

    They chose a Windows 2000 platform "because it performed considerably than Linux 7.2". WHAT IS LINUX 7.2 AND HOW ARE WE EXPECTED TO TAKE THIS SERIOUSLY!?!

  116. Websphere is a load of crap - that's it proves.. by Axe · · Score: 2
    In case you did not noticed - server A is Weblogic, server B is Websphere.
    While comparison with custom coded .Net is a load of donkey shit indeed, comparison between A and B is entirely valid (same code, same optimization and tuning).

    So websphere is indeed crap performance wise..

    --
    <^>_<(ô ô)>_<^>
  117. Yellow Elf's Maxims on Microsoft by YellowElf · · Score: 1
    1. Never trust anything Microsoft says. Trust only what Microsoft does.
    >> corollary: "Trustworthy Computing" is sheer bunk until it appears in the digital flesh.
    >> corollary: Microsoft is more interested in PR spin than actual truth. (or is that a lemma?)

    2. Never trust anything anybody else says about Microsoft until it has been demonstrated that there is no financial or political relationship between the speaking party and Microsoft.
    >> How many "grassroots campaigns" and "testimonials" and "benchmark reports" and "white papers" by supposedly disinterested third parties has Microsoft been exposed to have influenced unfairly? Did you run out of digits to count on? Borrow a few friends, I'll wait. My, your little office is getting crowded!

    3. Follow the money. If it doesn't bring in more revenue, Microsoft doesn't care. Nits in the OS (GOD I hate the shutdown being the first item on the start menu, e.g.)? Big deal, they don't have to change it and you can't do anything about it BECAUSE YOU CLICKED YES ON THE EULA.

    I'm not bitter, I'm just squashed helplessly into the ground by an indifferent greedy corporation.

    Sigh.

    --
    Insert witty saying or aphorism here.
  118. Try Cocoa by Anonymous Coward · · Score: 0

    If apple would only release cocoa on other platforms it would be ultimate. Write software in java using cocoa, all the benefits of Java without most of the drawbacks.

  119. Quite a leap by jaaron · · Score: 2

    Java is not perfect, granted. EJB's are not always best, granted. But to say that just because EJB's aren't always a good solution therefore "J2EE blows", isn't that a bit of a leap? There are alternatives to EJB's you know. It's possible to write a full J2EE app without ever touching them.

    --
    Who said Freedom was Fair?
  120. FUD you say? by Anonymous Coward · · Score: 0

    Funny. I've always thought that people that do stuff like spell MS "M$" are the real FUDers. At least no better than common trolls. Shape up, because noone takes that kind of FUD seriously - it is too childish.

  121. Tutorials versus Production Applications by jaaron · · Score: 2

    Are you saying that performance shouldn't be taken into consideration when deciding what "proper coding practices" are?

    Yes. Now let me explain:

    You're right that performance is important, and teaching performance techniques is important; however, there are times when that's not what you want to teach.

    Example 1: Let's say we're going to teach a "hello world" application that displays "Hello World" in a web browser. Let's say I decide to do it with PHP or JSP or ASP and get the string from a database. Is that really the best way to print "Hello World?" No. Absolutely not. You'd just write the HTML and be done with it. In this case, you're trying to show how a technology works, not the best way to solve the "print 'hello world'" problem.

    Example 2: For my work I recently did a simple Jakarta Struts example. It basically just queried a table from one of several databases and printed it out in HTML. It was overly complicated for just this task (did validation, internationalization, muliple views...). Now if I really wanted to put this application in a production environment, is this how I would code it? Probably not. It's overkill for this particular example. But what I was teaching was the techniques of database transactions, validatation, etc. We have other applications in development that do need these features. So what I was teaching was not "How to overly complicate your application." but "A trivial example using complicated techniques you will one day need to use." The problem with this comes when developers cannot understand when such features are needed and when they're overkill.

    Back to our Java vs .NET example. I think the argument being made here is that Sun did a 'trivial' example to show how things work. Microsoft just wrote the (to use my previous example) 'html' version of 'hello world'. Is Microsoft's approach wrong? No, that's probably how you should write such an application. The problem comes when you try to compare and benchmark the two. So Middleware tries to rewrite the Java version to optimize it and it's still bad. Conclusion? Well, the whole point of this discussion is that Rickard Öberg claims that Middleware didn't do a proper job of rewriting it.

    I do agree with some other posters that it would be nice to see someone take the java petstore example and really do it right. Perhaps .NET would still win. Fine. That's great. But until then, spreading inconclusive results is only spreading more FUD.

    --
    Who said Freedom was Fair?
  122. Try InteliJ by Anonymous Coward · · Score: 0

    A great tool for developing Java applications, applets, JSPs. One down side is it is not free, but it is also not expensive(I think ~300 US)

  123. Results Analyzed and Refuted. by occam · · Score: 2

    DreamBeans has analyzed the results and published their findings. They found a variety of biased reporting and outright lies in the original report. Their analysis is available at:

    http://dreambean.com/petstore.html

    In particular, the J2EE application has not been optimized and some obvious optimizations (e.g., not using deprecated, inefficient API calls!) have been ignored. The J2EE application has been designed to do much more work storing data than the streamlined .NET version. Finally, they note that the .NET app is far from a model of application design (as MS claims).

    Read their report for the juicy details (not very long).

    1. Re:Results Analyzed and Refuted. by Serveert · · Score: 1

      Which I could mod this up.

      --
      2 years and no mod points. Join reddit. Because openness is good.
    2. Re:Results Analyzed and Refuted. by thicker · · Score: 1

      ...this from a guy who legitimately believes that the government is out to get him! Check out: http://www.cassiopaea.org/cass/tworealities.htm ...or the rest of the dreambean.com site, it's a little scary but mostly hilarious!

    3. Re:Results Analyzed and Refuted. by FooDotBar · · Score: 1

      To put it simply, Put up or shut up

      IOW: after 2 years, if half of what Rickard says is true, then why hasn't anyone managed to come up with a J2EE optimized version ?

      As to his other statements, such as the .NET code not having completely seperate data access layer fro mthe business object, well maybe he should read the actual report !! It was due to complaints from the Java community that the .NET code was dumbed dow not use dynamic sql instead of stored procedures. So which is it he wants ? Demanding that the Java code be allowed to use special optimizations and not allowing the .NET code to ,is what it sounds like he wants.
      It's a trivial site to write (at least it is in .net) So why isn't there a J2EE version that out performs the .NET one ?

      Or to put it simply :

      Put up or shut up

  124. The best post on the TSS site by Anonymous Coward · · Score: 0

    I have an inside source that informed me that there was a brownout during the J2EE benchmark and that's why it turned out slower...merely an electrical problem (Of course this wasn't in the report).

    I, too, am insulted that I wasn't personally consulted prior to this being published. What kind of company would publish a benchmark without contacting me first?...Perhaps a M$ company? I was on a Hailstorm protected site just last night and guess who owns TSS? That's right, one Bill Gates. I also unearthed several pseudonyms that Bill used to buy 51% of the shares in Sun solely to give the appearance of competition. And I thought holy water was only necessary when the MSDN conferences came to town. I am NOT paranoid, it's just that Bill is out to get me.

    As for the Lines of Code. Anyone wide-eyed youngster in kneepants knows that if you take the utility methods and put them inside a helper class you'll get a 700% reduction in the total LOC. Who really cares about developer time anyway? It's not like it's the most important part of the cost equation. With hardware so cheap why not just throw hardware at the problem? That's why I built an extra server room...just so I can stack Solaris boxes to the sky.

    Here I was thinking it was the use of stored procedures that skewed the initial Pet Store results. Now we all know it's the use of BMP instead of CMP.

    If it turns out that TSS is not owned by Bill, then we all know this is just a ploy by TSS to get the M$ developers' attention. They're already working on a revision where J2EE comes out on top, but they're waiting for funding to pay for the app servers and a mathematician to come along and count the LOC. Also, this time they're actually waiting until I approve of it before they publish.

    And to those of you crying about us J2EEers not publishing our own benchmarks, why must we publish a benchmark of our own when we can just punch holes in the benchmarks of others?

    Perhaps most importantly, the report fails to mention at what altitude these results were taken? Anybody want to wager they were measured at over 5000 ft?

    We all know J2EE is faster and better than .NET. Just because .NET came out 6-7 years later doesn't mean it's better. In fact, it means it's worse. Why do we need a benchmark to prove it? Let's just trust our intuition for once. I, for one, will never even look at a line of M$ code. With all these people asking "WWJD?", all I hear from the M$ camp is "WWBD?".

    1...2...Billy's coming for you...3...4...better lock the door...5...6...grab the crucifix..

  125. They are already fixing by grungeman · · Score: 1
    Check these links:
    --

    Signature deleted by lameness filter.
  126. The EULA - I'm surprised nobody has mentioned... by 26199 · · Score: 1

    In several MS EULAs I've seen a clause saying that you're not allowed to release benchmarks of .NET without their express permission.

    I would imagine the ones for the .NET SDK have this clause too...

    So Microsoft must have specifically given this the go-ahead, or you wouldn't be able to read it.

  127. instead of bitching... by eyeN · · Score: 1

    ...why don't all you open source zealots that think TMC rigged the J2EE PetStore (or fucked it up, or whatever) write a version that you think can compare favorably to .NET, running on the fastest, newest servers (db and web)? all the code is available - you have the strength of open peer reviews. instead of crying foul, provide something to substantiate your claims.

  128. What about Sun, huh? by Anonymous Coward · · Score: 0

    So since Sun created the first version, they should have been able to create a kick-ass version ESPECIALLY if they promote it as "Best Practices" ....but but but their version was even slower then TMC's version....

  129. This story should be modded.... by mattsucks · · Score: 1

    .. as flamebait. Me with mod points, and unable to mod the story. I guess it could be worse ...

    "Congress Passes RIAA-sponsored bill Mandating Adoption of Microsoft DRM and Outlaws RedHat and RMS for DMCA Violations" ...

    did I miss anything?

  130. Re:The sad thing is... by khuber · · Score: 1
    Lots of people eat at McDonalds, but their food isn't very good. Can you subsist on it? Sure.

    -Kevin

  131. Here are the reasons why you are wrong. by sheldon · · Score: 2

    I actually read the report, and am familiar with the Loadrunner tool they used.

    1. They tested both version 1.0 and 1.1 of .Net to show the difference.

    2. They actually used Windows 2000 machines for J2EE, it's mentioned on Page 15. They stated they benchmarked both linux and Win2k, and then picked the best result. For App server A, Win2k performned better. For App server B, they were both the same(i.e. equally bad from the looks of the results).

    3. I encourage you to rewrite the app using this new technology and run some benchmarks to prove your hypothesis.

    4. The people running the benchmark were familiar with the J2EE world and did involve other experts to aid in tuning both J2EE and .NET.

    5. According to the test lab configuration on Page 12, there were two Proliant 8500s for the database servers and another 8500 for the web/app server. I'm going to assume you meant web and app on the same server, or you just don't know how to design n-tier apps. BTW, .NET is also designed for distributed computing.

    6. Except for the Middleware group's experts. Check their website, they are a well regarded Java training/consulting company.

    I remember the same type of outrage when the Mindcraft benchmark showed IIS faster than Apache. Everybody claimed they were biased, they did it wrong, whatever.

    The truth was... They were right, and some intelligent people in the Linux community looked at the bottlenecks and tried to fix them.

  132. Its Gone:Anybody cached the benchmark pdf quoted?? by Geekonomical · · Score: 1

    The website seems to have removed the file...any mirrors?

    Thanks

  133. Unimportant? by alexo · · Score: 1

    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.

    Ladies and gentlemen, in the blue corner we have a benchmark of two competing technologies for developing n-tier web-based applications, and in the red corner, we have idle speculation about the future of a SciFi TV series.

    I wonder which one fits the category of "stuff that matters" and which should have been ignored.

    Here's a clue for /. editors:
    When you get "a bunch" of story submissions on the same subject it probably means that people find it interesting, exciting or important.

  134. ASP/PHP vs. J2EE/.NET by Sam+the+Nemesis · · Score: 1

    You can't compare ASP/PHP with J2EE/.NET. Both have applications in totally different arenas. ASP/PHP is used where you don't have complex business logic. It does not make sense to use them for, say, a financial instrument trading site having very complex business logic. That's where you required middleware apps like J2EE and .Net.

  135. Re:Fix it then! - It has been but wasn't used by Anonymous Coward · · Score: 0

    It was based on a >2yr old version of the PetStore (V1.1.2), whereas the later version (V1.3.1) has a number of significant improvments.
    These have been added as the "Best Practices" have changed over the years.

  136. J2EE Linux by ego1024 · · Score: 1

    Its interesting Microsoft chose to compare the two enterprise application development platform performance comparing Linux vs Windows

  137. No shit, Sherlock. by Captain+Pedantic · · Score: 1

    You didn't think I noticed when 26 other people pointed that out?

    --

    None are more hopelessly enslaved than those who falsely believe they are free. Johann Wolfgang von Goethe.
  138. The *real* price/performance.... by jusdisgi · · Score: 1

    Well, it certainly seems like there are big questions as to the fairness of the tests, on many levels.

    So how about a *real* price/performance testing?

    Tell both companies to write the app however they feel, tell them what it needs to do, and have them deliver a solution that would cost a customer a *total* of $10,000, $50,000, and $100,000. Including hardware, os, 3rd party software, etc.

    This eliminates Sun's posturing about old versions, the pet-store program not being designed for performance, the platform not being the right one, and the app-server.....etc.

    On the other hand, if I'm reading the margin for .net's win right, it sounds like j2ee might actually *win* such a competition...so I guess this sort of test is in violation of MS's EULA.

    curses, foiled again.

    --
    Given a choice between free speech and free beer, most people will take the beer.