Hello everyone, (Un)fortunately I do not have voting rights, but here is my (freely expressed) 50 cents anyways:
I appreciate that Andrea is trying to come up with a one-size-fits-all RFC. Nevertheless I believe it is flawed in regards to content as well as formally in terms of voting options. In my view this has become a fight over feature request vs. language consistency. I understand that a large part of userland is or would be in favor of this RFC - they always prefer new features as long as they are backward compatible. You might as well introduce an (configuration/declare) option for static typing, and userland would probably cheer. This does not necessarily make it a good thing though. You, @internals, are the guardians of this language and should consider intrinsic language consistency as a paramount objective. At the end of the day PHP is fundamentally a weakly typed language. Introducing an optionality in how the fundamental semantics of the language work (with the declare-proposal) is not well thought trough. It is by all means quite hacky - reminds me of register-globals, mb-function-overloading, etc. - everything bad about PHP. As we all know bad things cannot be revoked easily once introduced. This doesn't mean strict type hinting cannot be done in a coherent way. There have been good (or at least compatible) proposals, e.g. seeing "(type)" as a weak hint and "type" as a strict hint. This would be somewhat consistent with both, casting expressions as well as the existing strict/strong type hints for objects. But maybe having both is not the right (PHP) way after all. The only thing 100% consistent with the current language semantics would be no type hinting at all or some form of weak type hinting. Everything else would be nice to have, if (and only if) done right. Ultimately, and I am sorry to say that, I think this discussion is symptomatic for the lack of professionalism among the PHP community, keeping many potential contributors (like my colleagues and myself) from actually committing resources apart from mere observation. I find it very discouraging that well argued opinions of lead developers of this project, such as Andi, Rasmus and Zeev, are dismissed so bluntly. I do not recall any instance in the PostgreSQL community where Tom Lane or some other senior contributor has been so harshly treated. Having the original designers of the language keenly reject this proposal should be a concern to all of us, independently of subjective opinion or the current voting result. The honorable (and rational) thing to do would be for the author to retract this RFC and thereby postpone the decision (I am aware that the feature freeze looms!). This is so important for the future of PHP, so let's don't rush it, but try to do it right! Cheers, Ben ========== Original ========== From: Matthew Leverton <lever...@gmail.com> To: Zeev Suraski <z...@zend.com> Date: Mon, 09 Feb 2015 05:20:25 +0100 Subject: Re: [PHP-DEV] [VOTE] Scalar Type Hints On Sun, Feb 8, 2015 at 3:22 PM, Zeev Suraski <z...@zend.com> wrote: > I'm well aware of it as I wrote that policy. The goal of the policy was to > prevent a situation where a temporary majority can introduce features into > the language that would later on be impossible to reverse. It's not by any > stretch a good mechanism to solve controversial votes, which again, should > ideally be avoided as much as possible. It's just that there isn't a better > mechanism. > I know I'm unfairly paraphrasing you, but it sounds like you are saying that for things that you don't have strong feelings about, then you're fine if the others vote amongst themselves. But for things that matter to you, you want to reserve the right to prevent change. Is there a way to fairly describe what you consider too controversial to vote on? The problem I see with votes for this type of feature is that you probably have a breakdown of something like: - 10% of people don't want scalar type hints - 20% of people want both, but 50% of them would vote for either weak or strong - 35% of people want strict, but 80% of them are fine with weak - 35% of people want weak, but 80% of them are fine with strong So if a strict-only vote happens first, you get 73% to say yes. If weak-only vote happens first, you get 73% to say yes. (I'm obviously just making up these numbers with no scientific basis, but I think the principle is valid.) The only way to be fair IMO is to hold a vote where you rank those four options (weak, strong, both, neither) and hold an instant run-off vote where the first majority wins. And if 'neither' wins, then agree that the topic cannot be revisited until next major version, so that everybody can rest for 5 years. ;) -- Matthew Leverton -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php