| Heino H. Gehlsen 2005-12-03, 6:56 pm |
| > Heino H. Gehlsen wrote:
office when it comes to Net_NNTP for at least a year, and that I am
currently preparing the package for a possible future status as
unmentioned![color=darkred]
channel – the installer etc. not included – and I’m not certain if I
want[color=darkred]
thought I might finish my current work here so that I can leave at will
any time.[color=darkred]
>
> Care to go deeper in what you think should be improved. Just leaving the
project will not make it any better.
Sure thing, but I’m not leaving right away – I’m only making sure, I have
no unfinished business!
Back in the summer 2004 I wrote this message ("Forking PEAR"):
http://marc.theaimsgroup.com/?l=pea...83844308794&w=2 , and my
point of view has not changed much, since I honestly don't see much of a
difference since then - well except that Greg has gotten the channels up
and running, and a few more gadget packages has been accepted into PEAR...
These days PHP developers talk about PHPv6, but PEAR is currently stuck at
PHPv4 – PHPv5 packages _is_ legal, but come on, the important packages in
PEAR is still PHPv4. And now it’s simply too late to start making a new
repository/channel – at least the central packages, coding standards and
cross package naming conventions should have been in place _long_ ago!
There were once those who didn't want to see PHP5 code in PEAR until
PHPv5.1 was released. That has happened now, but where are the packages?
Truly PEAR is stuck at Zend v1 coding.
Why was PEAR taken out of PHP (v6, wasn't it)? I didn't follow the list
that close then (which I still don't), but my guess is that the PHP
developers were displeased with the current situation: The code was still
stuck at PHPv4, there were _no_ serious plans to migrate to even PHPv5,
and therefore having a not quite ready installer delaying PHP-releases was
unacceptable...
Quite honestly, I find that conservative developers have kept PEAR back
long enough, and now we see a counter reaction from Zend: The Zend PHP
Framework. This is exactly what a few of us, Greg, myself and a few others
had in mind over a year ago, when we tried to join forces, but Greg ended
up finishing the PEAR installer (we needed channels to be able to do
anything serious outside the PEAR repository), I ended up spending quite a
lot of time on three public elections here in Denmark this year, and the
rest of the group also had their own projects. Now Zend has taken things
into their own hands, since PEAR missed its true potentials.
As I said back in the summer 2004 those conservative developers definitely
have a rightful place in PEAR, since API-stability truly _is_ important,
but as time went by they have prevented PEAR from starting over with a new
Zend v2 based channel - they have been _too_ conservative! They have in my
opinion gone too far! Time has proved that we simply can't make a
repository which is still base on the good old PHPv4 code, and expect the
repository to suddenly embrace the new features in Zend v2. In my opinion
the bitter truth is that PEAR will never go enterprise under its current
government!
There is of cause a major difference between the few applications, the
base packages, the implementations of common standard, and the lot of
gadget packages in PEAR. The applications should, in the holy name of easy
management, not be forcefully upgraded until need bids it, since the API
is not supposed to be used by others. The base packages should have been
upgraded al long time ago, and most of the implementations of standards,
especially those related to connectivity and email, should be totally
rewritten based on a set of common API guidelines. And last but not least
there are the gadget packages, which are the true reason for the
conservative versioning convention (since they were meant to be doomed to
be rewritten at will at any time, and should in many cases be able to
coexist with older incompatible versions of the same package). Now that
channels has become reality, why haven’t the PEAR community embraced this
obvious gift, and moved all the unimportant code/packages out of the main
channel?
I honestly do believe that the PEAR community has failed the migration to
the Zend v2 platform – it’s as big a failure as the current a Zend v1
repository has been a success. Applications like the PEAR installer (and
perhaps a few other applications or packages such as PHPDocumentor) are of
cause not included in this rather cruel judgment, since they are not meant
to be integrated into other applications.
The fact that PHP5 is not yet included in the stable branches of most
Linux distros can't be the only explanation for not having a bunch of
PHPv5-ready packages when PHPv5 finally do hit the general public.
I believe that none of us PHP5-ready users expected truly stable
PHPv5-packages in PEAR repository until PHPv5.1, since the API of both the
packages and PHP itself should have a chance to mature. PHPv5.1 was
mentioned as the milestone long ago, but where are the PHP5-based
packages?
As for the "Just leaving the project will not make it any better" comment,
the thing is: Does it really make a difference? We won’t see a Zend v2
based PEAR repository until PHPv6 beta-something is released, will we? If
I were to put any more work into PEAR (except for the cleanup I’m doing at
the moment) it would have to be in a completely new PHP5(.1)-based
channel, since I for one am not willing to constantly debate with
pro-PHP4-con-PHP5-developers (with reputation and/or attitude) about how
PPP should trigger a modification to the coding standard, or if exceptions
are a evil thing etc. Sure they have a lot of PHP4-based code, and they
are most welcome to keep it, and they are most welcome to improve it, but
they can’t prevent the rest of us from using exceptions where
appropriate...
I for one embraced PHPv5 back when it went beta in the fall 2003 (of cause
not that I used it in production), and I have run into bugs and other
problems, which forced me to wait for months before the truly right
implementation was possible, but the code was there, as all I had to do
was wait for the bugs to be fixed. I even based an exam on the
beta3-release it in the winter 2004. Some of us have been ready for a
loooong time, but some of you (none mentioned, none forgotten – actually
most forgotten ;-) prevented us from doing things the right way, and now
it seems it’s too damn late!
I was once willing to put quite an effort into the repository, now I know
better!
There are the PEAR users, who happily use the packages knowing little or
nothing about the community troubles - and then there is the developer
community!
Some developers have seemed to think the whole purpose of their
participation in PEAR is to ensure that absolutely no general progress is
made – they have accepted some now packages, but nothing existing should
ever change. Some were simply hostile towards the new stuff in PHPv5 –
anything new based on the old PHP4-ways was welcome, but the new stuff
would have to wait. For instance when it came to exceptions it was clear
that some hated them, some knew enough to think they did not belong in
PHP, and still some appeared to know absolutely nothing about the true
ways of exceptions, but still they knew better! Sometimes it even seemed
like some developers was even more interested in protecting their own
non-PEAR projects from any upstream/PEAR-progress, than preparing PEAR for
the future.
On the other hand some developers have found the new features of PHP5(.1)
most welcome and in fact needed, and they were willing to take PEAR to the
next level. Some wanted to do the new stuff within the boundaries of the
current repository, and some wanted a separate channel. Either way would
be fine, but the common base packages have never been upgraded to a
PHPv5-friendly API, and due to the current autonomy of package maintainer
(who just has to respect backward compatibility) this isn’t considered a
community decision – it’s a decision which is left up to the individual
package maintainer. Then some of us even wanted consistency between
packages – a common API-guideline so that related packages could actually
function smoothly together. This of cause would violate the
maintainer-autonomy, but result in a quality repository, and suddenly
otherwise progressive developers became conservative.
And then a few developers, Greg especially, have worked hard making the
really important stuff possible: Taking the heart of PEAR, the installer,
to the next level. We now have channels among other important matters such
as package bundles – the PEAR installer even handles PECL extensions. Now
the time has come to face the important fact that PEAR is now more about
the installer that the rest of our packages/code, rules and guidelines.
Another hard to swallow fact is that it is the installer, and only the
installer, that makes PEAR truly special. Sure a good handful of quality
packages exist in PEAR, but they would be just the same if they were moved
to a separate (PEAR1 / PHP4 / Zend v1) channel.
Over time it seems to me that the PEAR community has been more about
debates and keeping the repository in its present form, and neglecting any
possibility of a brighter future, that what it should in fact have been.
Now we face the problem, that the novelty of PHP5 has worn out – those
willing to do the hard work have spend a lot of time creating their own
incomplete PHP-based mini-collections, and now (thanks to Greg) have the
opportunity to create a channel of their own. Where are the developers who
could have made the transmission from Zend v1 to v2 possible now? Are they
still active PEAR developers? Are they still willing to go through the
never-ending debates? I for one have lost all hope long ago!
Kind regards,
Heino H. Gehlsen
|