Say NO to CLA in PHP, say NO to PDO2
Posted by Pierre in
Uncategorized
Thursday, January 24. 2008
SAY NO TO CLA in php.net! say NO to PDO2
I have nothing else to say that the decisions, done unilaterally, to use a CLA for what many consider a core part of PHP5+ is the worst thing they ever did.
Saying that
having such a mechanism and process will allow the highest level of expertise to be available both to planning and developing the next generation of PDO.
is an insult to the history of PHP and its development. (see the full post here)
The recent events in the LAMP world only confirms my thoughts about why we must fight to keep PHP as independent as possible from any commercial entities (Zend included). It is the only guaranty for the long term success of PHP in the open source (and free) community.
SAY NO TO CLA in php.net! say NO to PDO2
ps: Yes, I’m über pissed off.
Richard Harrison - #1 - 2008-01-25 02:28 - (Reply)
I’ve read Wez’s FAQ. In your opinion Pierre, why are CLAs bad and why in this specific context (PDO2)?
Pierre - #2 - 2008-01-25 02:44 - (Reply)
"In your opinion Pierre, why are CLAs bad" They solve nothing from a legal point of view (there is many stories about this fact, google for a few. Lukas has some posts about it as far as I remember) and force me as PHP core developer to sign a CLA to contribute to a critical part of PHP. PHP is developed since more than ten years without any of these useless CLA. We never had any issue because our "lack" of CLA and we are now the language #1 for web development. Now that some big companies realize that they can’t win this fight without contributing, they try to apply their pointless restriction to our world. The worst is that some of us blindly follow them only motivated by the possible business gains. Where they are stupid is to think they have to do it to get contracts, partnerships or anything else, they don’t. PHP is the #1 now and will be the #1 for a while, we don’t need to accept everything asked by the "best in the business". As I said in another blog comment, I don’t care about the best in our business if they need a CLA to share their clue with what brings money in their pockets: PHP. "and why in this specific context (PDO2)?" Because it is what they use to introduce CLA and no, the way they do thing is not acceptable. It is not the way PHP works (or the open source in general).
Kelvin - #3 - 2008-01-25 06:16 - (Reply)
Pierre, I agreed with your points, but how can we solve the problem with so little people committed with PDO? I use Java, and I think JDBC is a good database layer. I just hope PDO could be just like JDBC, or better.
Laurentj - #4 - 2008-01-25 10:51 - (Reply)
> is an insult to the history of PHP and its development. Well, my thought is that the development of PHP, in general, lacks in term of quality, in term of consistancy. And by this lacks, the community has proven that it haven’t enough expert on some API, in particulary databases. So, if the CLA is a solution to have a robust and complete API in PDO, why not. I’m tired of bugs in PDO, I’m tired to use others PHP abstract layers which suck in term of performance. However, if you think that CLA is so bad, well, propose an other solution. The actual development process is not really terrible IMHO (This proposition of CLA prove it). Perhaps you should change how the developement is organized, perhaps you could create groups which are responsible of some extensions or other parts of the code and which verify that contributors don’t take bad decisions (in API design, in implementations…). You could introduce also a review process like in Mozilla : in Mozilla, each patch is reviewed by at least two other developpers (a reviewer + a super reviewer) before to check it in (I talk about Mozilla because I know this project well). These are just some examples, you can choose other development process. But I think you should change the actual development process in order to have a better engine, a better API, in term of quality, consistancy etc, and to gain more and more credibility compared to other languages. CLA or not, you MUST change something.
sapphirecat - #5 - 2008-01-25 15:05 - (Reply)
Once upon a time, I was a very bleeding-edge, "bring us the future" type of developer. But time and time again (the PHP 5.1.X series and now PDO, in the PHP world) I keep seeing that this is not a mindset you want to try and build a business on. Why were people still using PHP4 in 2007? Because it was a known quantity. In hindsight, I can see for years people like Ilia making presentations on how easy it is to port PHP4 to PHP5, and that you should do it; and then the team comes out and says, "So, yeah, upgrade to 5.2 ‘cause it’s got security fixes and unlike our previous 5.x releases, it’s actually stable!" So for the last 3 years, you’ve all been pushing unstable code and pretending like its okay? I should’ve stuck to PHP4 instead of upgrading to PHP Java. Getting back to PDO. With the announcement of PDO2, all the code I’ve written to embrace The Future with PDO1 is now moot. It was all a big mistake. Don’t use what we provide you ‘cause it’s gonna be gone in a year or so. And now I’ve got a bunch of code that apparently doesn’t have any way to limit the number of connections, which makes system administration hell. (Never mind that we have to guess at and balance the connection limit between mysql and mysqli already.) PHP started as a pragmatic language, which helped it take over the Web. Requests don’t interfere with each other, there’s no cache issues beyond plain HTML because the file is compiled every time, and the file has an obvious 1:1 mapping with the request URL. These things made it dead simple to use and support PHP, far beyond the level of setting up mod_perl or, God forbid, running multiple mod_perl apps on a single server. MySQL became the dominant database system not because they’re better than postgresql, but because it’s way easier to install and get up and running. Easy counts. PHP is losing those pragmatic roots and becoming a toy for the core team, where decisions are not made based on users’ needs, but on one person’s whimsy. Why is there PDO and MySQLi? For that matter, why is there mysql and mysqli? Why doesn’t the mysql extension "just work", building in the ‘improved’ support when an improved client library is available? It’s a decision made to ease the work of the developers, instead of thinking about where the users are going. When you stop caring about the users, you stop inspiring passion in them, and you become legacy. PHP was big enough it will have a long legacy, but as soon as someone else combines the ingredients that made PHP a success with a better underlying language, PHP itself is doomed. Don’t let it go that way. (p.s. I used to lurk on internals but quit when it was obvious that it was mostly a way for the core team to act like they had a public development process, although the decisions were made off-list and justified later.)
Draicone - #6 - 2008-02-18 13:03 - (Reply)
I suggest you calm down. There are some things you can only achieve in business. Open source fanatics would like you to believe that FOSS is the overwhelmingly perfect business model; in reality, there are some areas where commercial endeavors have excelled far beyond the potential of any open source project. If we want to tap into that, that success, that expertise, we’re simply going to have to use a CLA.
Pierre - #7 - 2008-02-26 14:19 - (Reply)
"there are some areas where commercial endeavors have excelled far beyond the potential of any open source project. If we want to tap into that, that success, that expertise, we’re simply going to have to use a CLA." They sure excelled (or still do) in some areas, as we do in many other. It is not being fanatic to ask contributors willing to help to keep or increase their business to follow the usages of a given project. Many much more important parts of the linux stack do not have any CLA and many leading commercial entities contribute. The arguments about the needs of a CLA to get contributions from "expert" (we still have no idea about what they are talking about) is a pure FUD.


