> -----Original Message----- > From: Pierre [mailto:[EMAIL PROTECTED] > Sent: Tuesday, June 19, 2007 9:09 AM > To: Rasmus Lerdorf > Cc: Peter Brodersen; internals@lists.php.net > Subject: Re: [PHP-DEV] What is the use of "unicode.semantics" in PHP 6? > > On 6/19/07, Rasmus Lerdorf <[EMAIL PROTECTED]> wrote: > > > But this is no different from writing code that will work on both PHP 5 > > and PHP 6. The only difference is that instead of checking for PHP 5 > > you will be checking for Unicode. Like I said, we don't want the > > Unicode decision to be synonymous with PHP 5 vs. PHP 6 because then the > > non-Unicode folks will never get the benefits of the non-Unicode > > improvements in PHP 6 and we would be forced to support PHP 5 for a lot > > longer. We really stretch our already thing resources in order to > > support multiple branches, so anything we can do to get as many people > > as possible onto the same codebase helps us a lot. > > Just as a last (hopefully) comment, even if nothing seemed to have an > influence, no matter how many we are to prefer a unicode only mode (so > far only you are in favour of it, maybe Andree too but I don't > remember his opinion on this topic :). > > The gain we hope to have by keeping a non unicode mode is about having > more users moving to PHP6. I would like to know why it will work > better than with php5, any thoughts? > > And let forget that maintaining (and develop/implement) these two > modes will obviously take more time. > > Cheers, > --Pierre
I remember when PHP 5 came out. All the apps I worked on and any I saw that was worth its salt took very little effort to get working in the new PHP version. The BC breaks weren't that bad. With that said, PHP 5 adoption was ... slow, at best. unicode.semantics is not the way to solve this problem in PHP 6. The big push for PHP 6 is UNICODE SUPPORT. And you're making this a switch that you can simply turn on and off? That's not how you move people onto the new version, that's how you keep people AWAY from it. Vendors are not going to be bothered to update their products to support PHP 6 with unicode on and off. And if they only write it one way or the other, they'll lose sales because it won't work on Customer A, B, and C's hosts. So, what will they do? Stay in stable waters for as long as they can. Which means, nobody's leaving PHP 4 or 5. PHP can afford a BC break, trust me. If you want people to adopt PHP 6, don't make it harder for them to do so. unicode.semantics does NOT make it easier for the vendors (who control PHP adoption, by the way -- it's all about who's programming the products for the versions) to adopt PHP 6. It makes it harder. You say you want to move people onto PHP 6 as seamlessly as possible by making it easy to port code written in PHP 5 onto it, and that's great. But, it's not the correct solution. Because, these people will have to live with the knowledge that their code "works on PHP 5, and on SOME distributions of PHP 6". You want people off of PHP 4 and PHP 5? Put together a plan to drop ALL support for these versions and PUBLICIZE the heck out of it. You let people KNOW that after PHP 6 is out, you have a steady plan to drop support for PHP 4 in x number of months and PHP 5 in x number of years(?). That way, if they want to continue getting security updates, they know where to go. And vendors will be more inclined to get their butts in gear to support updates in technology. In this situation, BC is going to be the bane of PHP's existence. By enabling unicode.semantics, you are polluting what PHP 6 was supposed to be and giving an excuse to people who are lazy and don't want to do the extra work necessary to support the changes. And those people will not do them, if you don't force them to. Meaning, their apps will work on PHP 5 and a subset of PHP 6 installations. But, let's look at this situation from another angle. What if unicode.semantics becomes the next magic_quotes or safe_mode, and is ALWAYS OFF in 95%+ of PHP installations? All of the work you did to add unicode support was WASTED on this presumption that if you don't have BC, no one's going to use it. Whereas the opposite is clearly true, in this case. If you have BC, it'll get used simply because it works with old code, but the main thing that changed about the language will never be touched. -- Jeremy Privett PHP Developer Zend Certified Engineer Peak8 Solutions -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php