We can't use interface and MI (multiple-inheritance) in PHP4. By that, it's difficult to design some classes of XCube layer. For example, XCube_PageNavigator needs to connect with other instances for exchanges of information. But, other classes may extend other base classes. So I want to define an abstract class which has methods to be called by XCube_PageNavigator. However, it's impossible in PHP4. Therefore, I have to use XCube_Delegate.
And, I can define a dummy class to show interface definition for developers, because PHP4 isn't type safety. Maybe, great programmers in PHP write such code smartly. But, I don't know tips of PHP and Light-Weight programming. My experience is type safe language only. By that, source code of XOOPS Cube is never beautiful for PHP programmers...
I don't stick to what program language we use. Because PHP4 is the major environment in rental servers, we should use PHP4 for XOOPS. This is not an enterprise. It's just hobby. But, some specs of PHP4 opaque XOOPS Cube code.
I have a hard head. And, I don't have a good command of Lighet-Weight languages. I need more learning.