Hi!
Given many discussions on the list about changing stuff in PHP, I'd like
to bring everybody's attention to comment by Linus Torvalds in this
topic: https://plus.google.com/115250422803614415116/posts/hMT5kW8LKJk
It talks about Linux kernel and discussion has next to nothing to do
with PHP, but generic point about keeping the interfaces and importance
of not serving one use case I think very important for all widely used
platforms equally. I think the opinion of the author of one of the most
successful platforms in recent history may be interesting to consider.
Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227
Hi Stas,
You know, it's not always possible to get new features or performance
boosts without API change. It's one of the reason why we postpone such
changes for major releases. But, I agree that even in major releases API
shouldn't be changed without significant reasons, and we should keep
compatibility if possible.
BTW I even think that PHP doesn't need most of recently added features.
It's a monster already and we make it more complicated with each
release. As these new features are needed only to few people, they are
not tested enough. Then, after release, we found that something doesn't
work as expected, and we have to fix design mistakes with ugly hacks.
Traits is a good example.
Thanks. Dmitry.
Hi!
Given many discussions on the list about changing stuff in PHP, I'd like
to bring everybody's attention to comment by Linus Torvalds in this
topic: https://plus.google.com/115250422803614415116/posts/hMT5kW8LKJkIt talks about Linux kernel and discussion has next to nothing to do
with PHP, but generic point about keeping the interfaces and importance
of not serving one use case I think very important for all widely used
platforms equally. I think the opinion of the author of one of the most
successful platforms in recent history may be interesting to consider.
Stas Malyshev wrote:
Given many discussions on the list about changing stuff in PHP, I'd like
to bring everybody's attention to comment by Linus Torvalds in this
topic:https://plus.google.com/115250422803614415116/posts/hMT5kW8LKJk
It talks about Linux kernel and discussion has next to nothing to do
with PHP, but generic point about keeping the interfaces and importance
of not serving one use case I think very important for all widely used
platforms equally. I think the opinion of the author of one of the most
successful platforms in recent history may be interesting to consider.
To quote ...
Some gnome people seem to be in total denial about what their problem really is.
They'll wildly blame everybody except themselves. This article seems to be a
perfect example of that.
In addition to managing all of the changes being integrated into PHP I've been
living with the 'improvements' in Linux. KDE3 became KDE4 and in my opinion
totally unusable! OK I'm a dodo, but simply LEARNING how to cope with a new way
of working and fighting a deliberate policy of blocking any 'classic' theme ...
I moved over to Gnome which did at least work more like I was comfortable with,
and they go and do the same pigging thing! But at least someone was listening
and I'm on a 'classic' view currently. Progress needs to be productive not
aesthetic?
How does this relate to PHP? It's exactly the same attitude here. SPL interfaces
are something we can currently take or leave. Personally I'd just disable them
altogether but it seems I can't? Some would like to force them on us, and
generators are a nail now to hang making more stuff 'core' such as more
exceptions. But personally I don't need them. All of my persistent storage is
via the database, and fast access to that - filtering the information required -
processing the output - purely uses the database interface. PDO gives me nothing
there. It's still incomplete and there is little interest in 'completing' it.
ADOdb may be a bit bloated, but a bit more attention to the extension from those
of you who understand the fine detail and we could have a faster well
established alternative? Currently each major project is going of designing it's
own alternative some based on PDO, some database specific, simply because there
is not a GOOD standard interface to work off. Even the ZendDB interface ends up
getting it's own custom extensions on each project making maintenance a
nightmare. I've three different zend framework based sites I've inherited and
all three provide a 'different' database interface! They will be moved to my own
framework simply because it's easier than trying to learn three new methods of
working. That and I can get everything back onto Firebird which provides
transparent background backup's.
The drive to release more often has to have a 'reason'. And getting bug and
security fixes out promptly is the reason, not trying to placate some self
inflated commentator who says "PHP is crap because it doesn't have ..." but they
are never going to use it anyway?
--
Lester Caine - G8HFL
Contact - http://lsces.co.uk/wiki/?page=contact
L.S.Caine Electronic Services - http://lsces.co.uk
EnquirySolve - http://enquirysolve.com/
Model Engineers Digital Workshop - http://medw.co.uk
Rainbow Digital Media - http://rainbowdigitalmedia.co.uk
Hi!
Given many discussions on the list about changing stuff in PHP, I'd like
to bring everybody's attention to comment by Linus Torvalds in this
topic: https://plus.google.com/115250422803614415116/posts/hMT5kW8LKJkIt talks about Linux kernel and discussion has next to nothing to do
with PHP, but generic point about keeping the interfaces and importance
of not serving one use case I think very important for all widely used
platforms equally. I think the opinion of the author of one of the most
successful platforms in recent history may be interesting to consider.Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227--
Good find, Stas. I would like to quote a portion of it:
One of the core kernel rules has always been that we never ever
break any external interfaces. That rule has been there since day
one, although it's gotten much more explicit only in the last few years.
The fact that we break internal interfaces that are not visible to userland
is totally irrelevant, and a total red herring.
Basically we shouldn't break any interfaces that are user-facing but
we are free to change things internally as much as we want as long as the
external interface is honored.
Basically we shouldn't break any interfaces that are user-facing but
we are free to change things internally as much as we want as long as the
external interface is honored.
So how do you actually go about adding a feature that requires an
interface change?
Take for example the SessionHandler class, that implements
SessionHandlerInterface.
Now lets say you want to add functionality to the class that allows a
user to override create_sid, and provide user-generated session ids.
It doesn't make sense to add it to the class and not the interface, so
what do you do?
- Add to SessionHandlerInterface and break BC?
- Create SessionHandlerInterfaceEx that extends the original, and have
the the class implement that? - Create SessionHandlerInterfaceEx that contains only the new method,
and have the class implement both interfaces? - Add to the class, but do not touch the interface?
On Tue, Sep 4, 2012 at 12:15 AM, Stas Malyshev smalyshev@sugarcrm.comwrote:
Hi!
Given many discussions on the list about changing stuff in PHP, I'd like
to bring everybody's attention to comment by Linus Torvalds in this
topic: https://plus.google.com/115250422803614415116/posts/hMT5kW8LKJkIt talks about Linux kernel and discussion has next to nothing to do
with PHP, but generic point about keeping the interfaces and importance
of not serving one use case I think very important for all widely used
platforms equally. I think the opinion of the author of one of the most
successful platforms in recent history may be interesting to consider.Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227--
This is why I love Mr. Torvalds! Unlike people like Jobs and Gates, Linus
stands firmly against the whole, "We know what's best for you better than
you do" mentality.
My newly-acquired Kindle Fire pissed me off last night. I turned it on to
watch an episode of Futurama and read some pages from Hawking's "The Grand
Design" before bed, then out of nowhere it rebooted itself and began an
"update" process that took the better part of 30 minutes! I was forced to
skip Futurama and just go straight to the origins of the universe. Fucking
bastards.... </rant>
--Kris
On Tue, Sep 4, 2012 at 12:15 AM, Stas Malyshev <smalyshev@sugarcrm.com
wrote:
Hi!
Given many discussions on the list about changing stuff in PHP, I'd like
to bring everybody's attention to comment by Linus Torvalds in this
topic: https://plus.google.com/115250422803614415116/posts/hMT5kW8LKJkIt talks about Linux kernel and discussion has next to nothing to do
with PHP, but generic point about keeping the interfaces and importance
of not serving one use case I think very important for all widely used
platforms equally. I think the opinion of the author of one of the most
successful platforms in recent history may be interesting to consider.Stanislav Malyshev, Software Architect
SugarCRM: http://www.sugarcrm.com/
(408)454-6900 ext. 227--
This is why I love Mr. Torvalds! Unlike people like Jobs and Gates, Linus
stands firmly against the whole, "We know what's best for you better than
you do" mentality.My newly-acquired Kindle Fire pissed me off last night. I turned it on to
watch an episode of Futurama and read some pages from Hawking's "The Grand
Design" before bed, then out of nowhere it rebooted itself and began an
"update" process that took the better part of 30 minutes! I was forced to
skip Futurama and just go straight to the origins of the universe. Fucking
bastards.... </rant>
You win the most random rant of the year award, Kris.
--Kris