Andi Gutmans wrote:
Please read the archives where discussions took place.
As you stated it would be "abusing" the notion of what interfaces ar

Take a look at abstract classes. That might help you.

Andi,

I read pretty much everything but the account requests on internals
(and have done since php5 was in beta), I am aware of the discussion you
refer to and I understand the logic regard how interfaces should be used
(i.e. what they were made for, at the very least in the eyes of those who
made them in this case).

I put 'abuse' in quotes because there is no one definitive answer to software
design - and my experience is people disagree wildly on what is right and wrong.

my complaint is that alot of the 'small' changes that have been happening
lately that are sold as improvements with regard to better software design,
improved development feedback (in order to catch bugs before they bit you, etc)
but they don't always stand up to the sales pitch IMO.

stating 'abstract' shouldn't be set on a method declared in an interface 
definition
is one thing but making it a fatal error to do so is another - baring in mind 
the
context that it used to work, and as far as I can see does no harm (i.e. the 
engine
can just ignore it). the E_FATAL forces the coder to the change the code on the 
spot
... an E_STRICT would give the coder a hint on how to write better/correct code 
but
does not force him to do something about it.

another example is array_merge() whose behaviour is now inconsistent with
how one can use an array or null interchangably elsewhere.

more worrying is the seemingly very real posibility that php functions will
soon be auto casting their arguments in a different way to explicit casting
(and auto-casting within expressions?). I have spent alot of time studying and 
learning
how the casting works in php (100,000's of people can probably say the same)
- all that is put in jeopardy for the sake of some purist dream...
whether "123abc" shouldn't cast to integer "123" or whether is should doesn't 
interested
me - the fact that it does I consider a plus point, php's autocasting rocks -
what I do find important is that it keeps working as it does.

I have given a couple of examples of break/changes that I feel are 
counter-productive,
goes against the practical/pragmatic ideal that php (I believe) was built upon, 
and possibly
most importantly alienate (lesser) coders and damages php's reputation.

The whole situation is compounded by the fact that [mainly] quite severe (in 
terms of
affect on php users) changes _had_ to be made to the engine recently that 
caused BC break
related to references. which is a case where there was a very strong argument 
(the only
critism might be that the argument was not conveyed to php userland strongly 
enough).
At any rate php has had to undergo some changes that really were required and 
it was a bitter
pill for most (Derick R. I recall spent alot of time getting his EZsystem to 
work with the
fixed reference stuff.), from a marketing perspective following a necessary 
bitter pill
with a stack of bitter pills that are not strictly necessary in quick sucession 
is
bad tactics.

so my whole gripe lies in the arena of consistently and the aparently increasing
lean toward purism for its own sake (which to me is not the same as improving or
fixing something because it really needs/deserves it) rather than towards what 
may or
may not be the academically correct implementation of a feature. or are we 
witnessing
php's slow but sure departure from its roots in order to preen it for 
enterprise use,
leaving its major userbase stuck with php4 and looking for a new home?

thanks very much for your time,
rgds,
Jochem

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

Reply via email to