Cat Fight in a Pet Store: Making Sense of all the Controversy


News: Cat Fight in a Pet Store: Making Sense of all the Controversy

  1. is running an article about the recent controversy stemming from Microsoft porting the Java Pet Store to .NET. The conlusion was that the experimental flaws of the Microsoft tests render the performance comparisons unusable.

    The author makes some interesting points about problems with the comparison and the tradeoffs it reveals about different design priorities.

    Read Cat Fight in a Pet Store: J2EE vs. .NET
  2. This article argues that the values quoted are invalid given different platform / configurations. Although in both instances, the source code is available to download, hence it is a fairly simple exercise for any of us to run the .Net and J2EE Pet Stores along side each other on the same hardware/database, albeit different middle tier container (J2EE vendor container vs Windows/COM+).

    As has been covered to death in this forus, Pet Store is not intended as a performance metric. However, most of the large vendors are all members of TPC... :-o

  3. My HelloWorld works 3 times faster in assembler than in C++. And once compiled, it takes 8k in C++ for less than 1 in assempler. I'm shocked!!!

    How in the world can people use C++???
  4. Hi Angel,
    That was tooooo good :-) . Hope atleast after reading this people might understand .....

  5. we have already had this kinda assembler vs c++ argument on the other thread "Microsoft claims.NET version of Java Petstore is superior". so lets not start it again here.

  6. Hi,
       If .NET pet store enphasizes performance , why not write a Java Pet Store that emphasizes performance too ?

  7. LOL!!!
  8. After having a short look on the sources of the Petstore 1.3 version, my first impression was that it is complicated and overdesigned. After all, the application is a simple online store. Compare this simple functionality to the mass of code and 'design patterns' used, I can hardly think of this as a blueprint for building J2EE applications. This in mind and when talking about performance (and for real world apps you cannot ignore this), I do not wonder about bad results.
    Beside this: Petstore 1.3 seems very buggy - i got a lot of exceptions and malfunctions. Sorry, if this is a the offical sample of a good J2EE app, i would say goodbye to J2EE!
    BTW: this bugginess is also true for the latest version of the .Net petstore.
  9. Compare this simple functionality to the mass of code and 'design patterns' used, I can hardly think of this as a blueprint for building J2EE applications.

    Here a few nice arguments

    For example:

    >> Quite frankly, Sun is doomed.
    >> And it has nothing to do with their
    >> engineering practices or their
    >> coding style.
    > I'd love to hear your thoughts on why.

    Sun is basically inbreeding. That tends to be good to bring out specific characteristics of a breed, and tends to be good for _specialization_. But it's horrible for actual survival, and generates a very one-sided system that does not adapt well to change.

    Microsoft, for all the arguments against them, is better off simply because of the size of its population - they have a much wider consumer base, which in turn has caused them largely to avoid specialization. As a result, Microsoft has a much wider appeal - and suddenly most of the niches that Sun used to have are all gone, and its fighting for its life in many of its remaining ones.


    So should there be strict guidelines or patterns which to follow or is it better to let the users control the way they use Java products and how they code or how they should code... according to Design Patterns, blueprints or what?

    Ok, it depends a lot on what you are doing or are trying to achieve. Do we really need all those design patterns and does following those patterns make us a better programmers?

    Just thoughts... nothing more.
  10. Comparing Microsoft and Sun technologies is always like comparing the window to the sun.

    From my reading, the two Pet Store applications from Microsoft and Sun are actually designed and/or implemented to exemplify how two competing companies think they can best support doing it (although, yes, Sun did it first and Microsoft copied it for the sake of the competition).

    If you focus on how they both tried to achieve the same thing, in most areas, they'll of course do it differently - simply because they are two different companies developing different sets of technologies. What is truly important is this: BOTH COMPANIES HAVE THE TECHNOLOGY TO CREATE THE PET STORE!

    If you count in performance, let's put it this way: assuming Microsoft and Sun invested so much as to get the best hardware, the best software and the best talents they can afford in order to create their own version of the Pet Store, isn't it enough to accept that they already did their best from the very start?

    In the real world, a company invests on resources they can afford. And with respect to that, they are trying to do their best. How much now and how much in the long run? If they can't afford the world's best, they get the best which they can afford. Add to that the things that the company finds important then there is always the option to evaluate, choose and decide -- true enough, what matters to the company is the end result.

    In the real world, customers do not ask if the company used J2EE or .Net; customers don't ask if the company used one tecnology over the other; or if the company used this model or architecture... for customers, what matters is the overall experience, the satisfaction, the quality of service... Summarily, what really matters to the customer is the end result.

    In the real world, it doesn't matter how much you invested on it. It doesn't matter how hard you worked on it. It doesn't matter how beautiful you did it. What matters is the end result.

    Just a thought...