RE: [PDO] [RFC] An Idea for PDO 2

[email protected] ("Andi Gutmans")
Newsgroups php.pdo
Message-ID <[email protected]>
Hi all,

First of all I'd just like to say that it's good we're having this
discussion. I think it has been very productive and I think most people
understand this is not a black & white problem. There are real benefits
to having the data access providers involved in designing, building and
supporting PDO 2 and there are genuine concerns re: how to get there.

As Adam has pointed out rightfully so, PHP and its rules have constantly
evolved over the years. We had many changes in license and process
including dumping the GPL from our dual-licensing policy in the late 90s
(when RMS threatened to fork PHP for the few that remember that), making
various tweaks to the PHP license, adding third party libraries/code to
PHP core which were not under PHP licenses, and at the same time
removing certain pieces from Core (like the MySQL client libraries) and
many other changes. Projects, organizations, communities evolve over
time; there are always people who are wary of change, but it is natural.
Changes have occurred in PHP, occurred in Apache, MySQL, Dojo, etc... 
	
I think the discussion most people are having is not whether change can
happen but whether the current situation supports making changes in how
we work. Wez and I embarked down this road because we both truly
believed that PHP and the broad PHP developer community would
significantly benefit from having data access providers involved in
designing, building and supporting a standard way for interoperating
with databases. Not only do I believe that having experts from the
various database vendors involved to be extremely beneficial but an
additional advantage is having additional sets of hands who would be
directly contributing to PDO. On that topic, the contributions we are
seeing from the vendors today are actually not from the experts
themselves but from others in the organizations who have been given a
bit more flexibility due to the fact that they are not part of the core
product teams (disclaimer: to the best of my knowledge). In addition, I
believe that direct involvement by the various vendors also continues to
support and strengthen PHP's leadership role in the Web space and is a
significant advantage to the overall platform.

At the same time I realize that the contributing community is extremely
important and is one of the strengths of PHP. Therefore I don't really
think this is an all good or all bad discussion but rather a pragmatic
discussion re: what's best for PHP in the long run.
	
I promised to answer what other alternatives to the CLA everything
proposal were discussed. Here is a short recap of what I remember (NOTE:
Just because they were raised doesn't mean that people necessarily
thought they were good ideas. It was more on the brainstorming side):
- JDBC like solution - Spec only as a set of interfaces/contracts (also
under some collaboration agreement although there may be an option not
to have that); drivers are fully implemented by the vendors; there is no
PDO core in this option. I didn't like this for three reasons; we lose
the advantage of having shared infrastructure for the various drivers
which ultimately may make it harder to make fixes and/or improvements
propagate to the various drivers, it may encourage less sharing of
knowledge between the vendors, and we would need to deal with symbol
namespacing issues to make sure the different drivers don't clash at
runtime.
- Developing PDO outside of PHP.net - I didn't like this because I
believe PDO is a strategic technology for PHP allowing us to finally
have good consistent DB support in PHP (we have always had large
fluctuations in APIs and quality for the native drivers). I don't see a
non-PHP.net project that isn't part of the community really succeed in
delivering what I think we'd need.
- Developing outside of PHP.net and then copying snapshots into PECL
(variation of previous one) and I don't like this either :)

I think the proposal Marcus laid out is a very good effort from someone
who is not very enthusiastic about CLAs but recognizes there are
advantages to facilitating the vendors' involvement. While I don't know
how all of the vendors feel about the suggestion (I intend to find out),
I think it does try and strike a good balance of trying to make it as
easy as possible for the community to help steer the direction of PDO
without requiring a CLA on the spec while enabling a path for vendors to
develop their drivers in an open-source manner but in a way which is
suitable for them and enables them to involve their key experts. Also,
by separating what is PHP core, and what actually ends up in our
"release" tar ball we draw a clearer line for committers while making
sure that our end-users receive the best out-of-the-box experience
possible.

Re: the licensing suggestions Marcus makes, I'd prefer to try not change
the PHP license if possible but rather have a PDO license which works
for the CLA. Theoretically (need to check this one) the PHP Group could
sub-license the PDO drivers to PHP under the PHP license if that makes a
significant difference; but like a lot of the other BSD-style licensed
code which we include with PHP, I think bundling PDO licensed code
wouldn't be a significant change to existing policy.

To summarize, I think given the feedback and discussions which have
occurred in the community I believe it makes sense to explore whether
the vendors would be able to contribute their guidance to the spec
without CLA. The community would then proceed to develop the PHP Core
without a CLA, but then enable the vendors who want to develop and
maintain their vendor-specific PDO drivers under CLA.

This is getting looong and it's getting late here :)

I hope this adds some background & clarity around some of the
discussions.

Andi
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.