Hello Lukas,

  nonsense, there was no OO in PHP 4. We only had arrays with somehow
attached methods. No static, no abstract, no visibiity, no nothing. Then PHP
5.0 was done in a very bad rush and we made mistakes as we didn'T have time
to test it. Thus we had to quickly deliver 5.1. And even 5.1 is not being
used. Now we must stay with the errors/mistakes we did in that rush forever?

Speaking of "abstract static" functions, they make absolutely no sonse from
a theoretical point of view (*). Actually it even defeats the purpose. As a
compromise we allowed static abstract in interfaces. However i am not quite
sure our own rules are correctly there. The compromise was fine as wecould
enforcesignature inheritance for static methods. So in PHP we could even get
more expression power than in other languages.

One question I like to give to everyonedropping rules out of PHP. If you
want OO without rules, why do you use inheritance after all? Ever considered
OO might be the wrong programming paradigm for you :-)

Technically at the moment we have no problem whether weenforce inheritance
rules or not. We only need them for magic functions: __*().

That said I can only repeat here what I said earlier on IRC. Lets do things
right and make the more complex OO rules as E_STRICT and create new severity
level E_DEPRECATED. E_STRICT will then only be used for 'pedantic' OO rules
while E_DEPRECATED will be used for stuff that is considered bad practize
and that might be removed in later versions. For me later would best be a
rule like earliest two minor versions later. If we do so we create a
situation wher I hope everyonecan get happy. All users can be informed about
upcoming changes using E_DEPRECATED and the OO supporters enable E_STRICT
while the dynamic fraction disables it. Last but not least i would like to
see 5.2 delayed for an additional month to get that change into and discuss
which rules are to be changed rather than makingone or the other fraction
pretty unhappy or increase chaos.

best regards
marcus

(*) But we are PHP and those theoretical language developments and common
understanding do not always apply - as some here know better...Sometimes
for the good and sometimes it just confuses people (Where good means it
allows faster hacking). Do not get me wrong here, PHP is nice and one of
it's big plus is its very dynamicnature. But this nature also comes with
a lot of problems that keep a lot of potential users away from it as well
as it limits ourselves.

Friday, October 20, 2006, 4:26:59 PM, you wrote:

> Ilia Alshanetsky wrote:

>> It is working code, its far from perfect given that it makes little 
>> programatic sense and does break all known OO conventions.

> Being allowed to break these "known OO conventions" is a major feature, 
> which has established PHP as a rapid prototyping language. Having some 
> tool to tell users that they are breaking these conventions is a good 
> idea however.

> regards,
> Lukas




Best regards,
 Marcus

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to