PHP 5.4 要来了,不要坑爹阿
在最新的PHP播客中,PHP核心开发人员Manuel Lemos 和 Ernani Joppert 讨论了最新的开发情况,以及什么阻止PHP 5.4 版本的最终实现。根据PHP 5.4 的发布计划,RC1 版本在8月24日发布,根据RC版本的情况,正式版本发布预计在10月或11月。
(因为时间问题还没有翻译,请先看下E文了,委屈大家了)
Manuel Lemos: Yeah, well, I don't know if there is much good news about what is happening in the PHP world, but at least there is something that I think it would be worth commenting about.
One of the things that I have noticed that probably could be more interesting to comment about is about the eventually upcoming PHP5.4, and I say eventually because we don't know exactly when it is going to be released.
And what happened this month is that there is another attempt to plan a schedule of releases, of steps to go in the direction of producing a release with at least some of the features because one of the problems that is going on with PHP 5.4 is that there is not let's say a consensus about which features should be included or not.
There were several attempts to decide which of the planned features would be included or not, but some people raised some objections, some concerns, and this release has been stalled several times for at least a few months.
And this month there was yet another attempt to resume the process. And what happened this month is that Stas Malishev, one of the PHP core developers, has proposed a plan, a schedule, for several steps to finally go for a PHP5.4 release.
Actually the first step would be to decide which features would be included or not, eventually doing some kind of poll with the developers that participate in the PHP internals list and decide which features are consensual that should be included in this release and maybe postpone the other features that are not so consensual to future releases.
Actually, the schedule that he proposed mentioned a vote that would happen sometime this month, but unless I missed something I did not see that poll being actually started, although the idea is start it in the middle of the month.
And this is a bit concerning I think because there is always something that seems to be setting back this release. In the PHP 5.3 which introduced the use of namespaces in PHP, one of the things that was largely discussed was the use of a separator character to define the namespace names.
And it took a lot of time discussing that apparently small detail, but since there was no consensus there was a vote to move on and decide at least for a character that would be accepted by the majority of the developers in the PHP internals list.
And this time in the PHP 5.4 discussion there are several issues that are not consensual. One of them is the use of the implementation of annotations built in the language because annotations by themselves were already sort of implemented by several frameworks, and what the developers use is some kind of a custom syntax in the middle of comments in the code and they use that for annotation purposes.
But what is being proposed for this eventual 5.4 release is to introduce annotations but somehow built in the language, so there will be some sort of parsing of those annotations built in the PHP engine in PHP code that implements that part of parsing the code, the PHP code before it is executed.
And I noticed there were a lot of discussions. It seems there is still not yet a consensus, but things are moving slowly but seem to be moving. We don't know yet when it will be decided when that eventual poll, that vote that is planned to happen somehow sooner or later, but once people get there I'm sure things will start moving faster because it's a matter of deciding which features should be included or not, and once that decision is made I believe it will be probably faster to move on.
From what I understood, the attempt to propose a release date it would be somehow by October or November, but since there are several factors that are still let's say stalling the decisions that need to be made now, we don't know yet how far the actual release will happen.
Ernani, what do you think about these discussions, these problems that are always setting back the eventual release of PHP, the next PHP version 5.4?
Ernani Joppert: Yes, my concerns here are whenever they have a feature request they propose a patch and they have to make sense, and a voting mechanism would be a democratic way to decide if a feature will be or not implemented.
But it seems that it takes a while for all the members of this list to actually get together and ensure the decision. And the decision making process is yet hard in a controlled environment like either on JCP for Java or any other specification board, everything is very hard to decide.
And regarding PHP I guess it wouldn't be different. It's just that it's even a little bit harder I guess because most of the developers are trying to fix issues and/or ensure something else and they tend to neglect a little on this part.
And it takes a little while to take decision making a quick step, and yeah, it's a little bit sad sometimes because we wanted to see PHP improvements with more frequent. Situations like I would really like to see the annotations requirements be implement because from my standpoint frameworks would really consume those and make this an even better environment for standardized frameworks and take the boilerplate out of the developer's hands and ensure that the annotation can make this process easy.
So let's see if the members can try to find a way to better organize and to better vote and ensure a specific time frame to do it. I know it isn't easy and I understand how... I've been a little aside from PHP internals and development itself of the core engine, but yeah, I guess I understand the situation here because there are a lot of other topics to work with in this decision making even for those who are key role members from the PHP development team might have a huge or busy schedule, but the world needs a better improved PHP and I guess this would be a higher thread to be discussed, and let's see how it goes.
I would give my vote to improving a specific time frame for voting, a decent polling system or either a community process, but a community process would involve commercial companies to be vouching for the PHP solution and either creating a board, and you know that sometimes this is a little bit hard because we've seen in Java world where JCP has lots of bigger players and sometimes it's not a very fair game.
But given this situation I guess they will eventually get this going and most likely improve this as the time goes by. And the community itself asks for such improvements, like if the community of developers asks for a better top level build release to be voted and ensure that it doesn't get later on in the game.
Wwe would see even more robust implementation of new features and incentivizing developers to go and promote their requirements as well, because when you see that it's something very difficult to achieve people tend to settle back and say oh it's very hard so I will forget about it, I won't even care proposing anything new.
But if there is a board and there is a very democratic way to find solutions I guess this would be a better future for PHP and a future for proposals as well.
Manuel Lemos: Well, we don't know yet but one thing is sure, the actual development of PHP is carried by those that actually contribute the code. That's probably one of the main things that is different in the Java world where there is that JCP process.
If you just go there in the PHP internals list and propose a feature, more than often you just get a request to submit the code to implement such feature, otherwise probably nobody will implement that feature for you.
So that's somehow a different way of evolving an open source project, you vote with code. But sometimes even if you actually write that code, there are objections to the introduction of that code because certain implementations, certain approaches may result in inconveniences.
Things that affect the performance of PHP in general, they might be turned down, but still the developers have the chance to improve their patches and submit the patches again overcoming the eventual objections.
And this is somehow what is happening with the proposal for annotations. It was I think Guilherme Blanco and Pierrick that proposed an implementation for annotations but there were some objections.
And recently there was a discussion about what exactly would be such objections. And they are evolving, they're evolving or rewriting their patched implement annotations, and so maybe this can still be introduced in PHP 5.4.
Well, we'll see, and for now what we know is that yet another step to come closer to a release has been given, but it's still at least a few months more to go. We'll see if we will still have a release in 2011, the original proposal for a schedule by Stas Malishev pointed to I think November, but if that planned scheduled will fail maybe it will be sometime in 2012.
Well, for the rest of us we still have to be patient. Personally none of the features that have been proposed for PHP 5.4 are things that I really wanted, but I understand why such features may please other developers, so those developers have to be patient and wait and see.