> Look at it from their point of view. Say, as a customer, you want to use
> library X. The ISP looks around and eventually find it lives on a personal
> site in Greece or Hungary. Not very confidence inspiring. The ftp on this
> site is broken, so they email  the author and wait a couple of days before
> they can download. The documentation may be thin or non-existent. There is
> no guarantee that this library has been tested to work with the release of
> PHP they are running, or that it will be maintained in the future. To
> install it they have to rebuild their PHP setup. There is, so far as I am
> aware, no regression test they can run to be sure they have not broken their
> installation for the other 400 customers using the server. Then they have to
> take the server down to install the new build. Is it any wonder that they
> just say "no"?

But the situation is exactly the same for Perl or Python or even Java for
that matter.  None of these environments ship all the 3rd party libaries
that they connect to.  And asking us to maintain 200+ libraries is
unrealistic.

> Now compare this with Perl or Java, where they simply plug in the new
> functionality without any significant risk of breaking their server setup.

How so?  If you want Perl DBD-DBI for Oracle, you need to first go find
the Oracle client libs.  The same is true for most other Perl addons.
Chances are the ISPs are just slightly more familiar with the bits they
need to go find for Perl.  The situation is actually quite a bit messier
for Perl as there are currently over 100 time handling classes in CPAN,
for example.  PHP has a single standard one that ships with PHP.

> 1) Propose a library documentation standard based, say, on CPAN and get it
> adopted by the community

Already done in PEAR

> 2) Set up a site to act as a central repository for PHP libraries

See PEAR.  Unless you mean all the 3rd-party libraries like Oracle
liboci8, libmysqlclient, libgd, openldap, ucd-snmp, etc..  That simply
won't happen.

> 3) Actively encourage library developers to provide plugin binaries, or do
> it for them if need be, at least for the most important libraries

You mean PHP extensions?

> 4) Do a regression test for each library once installed, and certify that it
> does not break the core PHP application

Impossible to do on the 50+ platforms PHP runs on.

> An initiative of this kind would go some way to helping PHP to catch up with
> competitive platforms.
>
> However, judging from this current thread, the development team don't see
> this as a priority, so I guess that it won't happen unless the user
> community makes a strong case for it.

Surely there are things we can improve upon, but the current statement of
the problem whichs assumes that Perl and Java are lightyears ahead of PHP
when it comes to extending their functionality just isn't true.  They face
many of the same problems PHP does.  When you have something that can
interface with literally hundreds of 3rd-party libraries, the build system
is going to be complex.  And there are going to be versions of libraries
that don't work with certain versions of other libraries.  If Oracle
decides to export a global symbol in liboci8 that clashes with a global
symbol in some other 3rd-party library, then the PHP build breaks.  There
isn't much we can do about this.  We do not control these 3rd-party
libraries nor is there any way we possibly could control these.  We can
try to come up with a workaround, of course, but that is about the extent
of it.  The Perl, Python and Java camps have *exactly* the same issues.

-Rasmus


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to