In the last few weeks, there are two unrelated discussions at PHP-internals mailing list that I personally follow and show the various opinions and considerations in the PHP community and internals about the new features and the backward compatibility and the future of the language:
- Deprecating PHP’s short open tags, again – this triggered a very lengthy discussion about BC (Backward Compatibility) and the merits of breaking it in this specific case for something that certain people consider it unimportant/irrelevant currently. The time and brainpower committed to this topic got so high that even become questionable should the discussion continue…
- Bringing Peace to the Galaxy – a proposal by Zeev to split the language into two versions similar to the way C/C++ are (PHP/P++). It was provoked by the feeling that the community is about to split in two – strong supporters of BC and supporters of new features. The proposal was quickly rejected – a vote was triggered to avoid a lengthy discussion similar to the short_opent_tags one.
While the first discussion shows that there is clearly a desire in the PHP community certain odd/unnecessary features to be removed or straighten up it also shows that there is clearly no consensus on something like the short tags and there is somewhat of a split in the community like the one observed by Zeev. The good side is that there is no actual split and people (at least at the current stage) clearly do not want language split or even dialects. The reason being that this will require more efforts to maintain the language which is my opinion too. Indeed Zeev brought up the “marketing” card that a new language (p++) may be “advertising” as something new and not have the stigma PHP has for being a “bad” language. The resource issue outweighs by far any benefits of the new brand in my opinion.
And in regards to the short_open_tags RFC I tend to be on the BC side – I see no major issue with the short tag (besides the obvious inconsistency of having both <? and <?php) and thus I think it is better to preserve the BC. IMHO any “serious” language should preserve BC as much as possible unless there are very serious reasons to break it and removing the short open tag, in my opinion, is not worth it. There are plenty of other things in the language that need attention – for example, exit() and die(). It is not worth removing either of these for the sake of “cleaning up” the language.