Hi!
I agree with all other guys who chipped into the discussion - Java is more powerful and more mature as an object-oriented platform, but the speed is not so great which arises from the fact that objects generally tend to allocate more memory and so they take more time during startup and shutdown. But OOP is more right - try to write a decent application in straight C++ that opens a window with a few buttons and textboxes on it. Then try the same with MFC - Microsoft Foundation Classes. The amount of code will be much smaller in the second case. However, in the first case you will be dealing with a lightning-fast application and in the second the whole 1-Megabyte MFC Dynamic Link Library will have to be loaded every time this small window opens. Again, in the first case if you don't use any wizards it will take you anywhere from a few hours to a day to write and debug it (if you're not reusing code, that is), and in the second - a few minutes maybe.
The same applies to VB - VB Runtime takes a bit over 1 megabyte; Delphi - Visual Component Library is quite heavy too, although Delphi compiler may compile only parts of it into the code if I remember well.
Java is about the same - there's Java Virtual Machine behind the scenes. It gets loaded during server initialization, but it still takes time to start up your scripts which is generally longer than PHP script startup time.
What JSP offers which PHP doesn't? JSP has a great OOP toolset. One of the things you'd miss in PHP if you were a Java programmer is an ability to extend more than one object interface or extend and implement interfaces at the same time. This is very handy sometimes. If you make a reusable library, you can make and extend objects, and then, somewhere down the road, implement this library's interface - so you won't have to backtrack and make the first object in this hierarchy extend the library in question. For instance:
class MyLib {}
class MyClass {}
class MyClass2 extends MyClass {}
class MyClass3 extends MyClass2 implements MyLib {}
In the case of PHP, you will really break down the nice OOP approach if you make MyClass extend MyLib, which you don't want because you might want MyClass to extend different libraries in different cases.
If you are considering a second language, you should really explore your options. There's a lot of stuff going on with XML and different libraries to make XML a standalone solution. You can also explore C# which is a new Microsoft thingie (as much as we all hate Microsoft, they do right things most of the time :-) ).
All of this is about to change because super computers are not far away and even with Pentium 600 it doesn't matter that much if you are dealing with a VB application or a C++ application. You have a small delay during initialization and probably a little bit slower response time, but it's okay. Our brain doesn't work at such speeds anyway. You have to think how much time either approach takes in order to write and debug a solution. OOP is a winning approach, and I hope the new PEAR and other technologies PHP is after will make it more appealing to developers everywhere.
Best regards,
Stas