Quote Originally Posted by firepages
design a sports car then implement it on a farm , conversely , a tractor on the raceway and you see where that logic can breakdown
I meant at a higher level.

That was included in "good design". In your example it would mean a tractor designer taking a look at sports car design in order to build a better tractor. There is nothing wrong with studying designs in other systems, it is actually a very good idea. Part of good design is that it gives you the possibility of trading issues against each other. I hardly thing anyone on this forum is going to implement J2EE in a single PHP script. Part of the skill in design is choosing the right tool and that skill is no less apparent in Java designs even though the resulting setup is different.

Unfortunate buried in these performance comparisons in this thread is a real argument. What OO gives you is enough flexibilty to not repeat yourself. This means that change is easier and overall development time is reduced. The development time is nearly always worse whilst you are cutting the first few classes and performance for small sites will be worse as well. As the site grows or more sites are created you get big wins.

But you lot all know this, the point is that you are balancing and trading some performance against the more expensive developer time as well.

Worse case: Your team use a java like PHP library with lot's of stuff you don't need (say you just happened to be familiar with the one you used with Java) and an XML (or Smarty) template system for a six month project. Say it runs five times slower, but you saved two months doing it this way and you expect to save another maintainence month while the system settles down to the final version. Cost of that three months is about $20000! For that cost you can load balance three servers and throw in the licenses for the Zend performance suite.

This is an extreme case. I have even massively exaggerated factors here in favour of under-design against over-design and this doesn't include later maintanence work, say changing to an external authorisation server, which benefits from the OO investement as well. I just cannot get the "gut the design for performance" argument to add up.

For anyone looking at web software design I would say, please, please have a look at the Java libraries and try out some of the ideas. It really is a fantastic resource.

yours, Marcus