Re: What is the use of "unicode.semantics" in PHP 6?
| From: | Pierre | Date: | Thu, 21 Jun 2007 05:41:25 +0000 |
| Subject: | Re: What is the use of "unicode.semantics" in PHP 6? | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-30296@lists.php.net to get a copy of this message | ||
Hi Andi,
On 6/21/07, Andi Gutmans <andi@zend.com> wrote:
I very much agree with Rasmus that giving our users the option is extremely valuable. Unicode support is useful to some people but I think it's a mistake to force it down everyone's throat. Forget the fact that it will be considerably slower and eat up more memory than PHP 5 & 4, but there will also be some serious BC issues and idiosyncrasies which a huge part of our community (arguably over 90%) just don't care about.That's true, and this 90% doesn't care either about php6.
Some people here said that we weren't successful in keeping BC between PHP 5 and PHP 4. Whoever said that must not have migrated applications between the versions. It took very little effort to do so. Most people I know did it in a matter of hours for sizeable code bases and in fact most time was spent on regression testing which would need to be done anyway.I was one who said it and I will said it again. I made many migrations. I confirmed it was not 100% BC and it required work. The problem (even worst after 5.x than between 4.x and 5.x) was all changes after 5.x. The new pedantic errors added in minor versions and other warnings, it was actually more painfull after 5.x than between two 5.x. For a simple reason, 4.x to 5.x issues were mostly known, it was wisely planed and decided.
I also think that the fact that we *do* still support PHP 4 is a strength and not a weakness of the PHP project (as much as I'd like everyone to migrate to PHP 5).I agree but we don't have enough resources (as far as I understand.) As you know, I don't consider maintaining 4.x is a lot of work. By maintaining I mean only security fixes. It can be done independently from any other releases and by completely different people.
Sure maybe that gave less incentive to upgrade which is a bit of a PITA for the PHP eco-system. On the other hand look at technologies who didn't do that. Microsoft with VB, DNA, DCOM and some of their other technologies are good examples. Every version their users would suffer time and time again, often having to completely migrate their investment because they were not officially supported anymore. Look at how Microsoft are looking to ditch XP early in the process. I don't think we want to follow that path. The fact that we do our best not to break BC and are very careful when doing it is a HUGE plus for us. Not to mention still doing security and critical fixes for PHP 4.It was not well done. A 3 commits release required months to be released, that's simply unreliable. If we like to keep every releases active for years, we have to change a couple of things in our model (see the archives to get some tips).
Btw, on the "if (UG(unicode)" issue. That's really a bunch of BS.With all respects, how many extensions do you maintain? How many commits do you actually do? Please don't tell me that what I said about the extra work required about the two modes is BS. Well, you don't say directly but you include every argument in the BS :)
I have always been against premature optimizations and I can pretty much promise that the "if (UG(unicode))" is not going to be an issue. It's a bit more code yes. But I think it's worth it.Most of us are against it for two reasons: - php6 without unicode makes no sense. The impact will be much more damageable than magic gpc on/off or any other flags we had until now - the extra work required I think we all agree than the slowness is not yet an argument. Even if it was, it is a non issue (as you well explained).
We had a lot of discussions on this issue within the core development team and I think there was a strong enough case to keep things this way. If we are proven wrong down the road then there's always PHP 6.5 or 7 where we can nuke the 8bit mode. But my guess is that at least 80%+ of PHP 6 users will not run in Unicode mode. For many there's just not sufficient reason to do so.That's the worst thing to do. Breaking things between 6.0 and 6.x is a no-no here. In the same manner, if we keep the flag, we will have to keep it. Or why php7 will be a better moment than php6? That simply makes no sense. --Pierre