> On 16.03.2015, at 15:03, Kristian Köhntopp <k...@koehntopp.de> wrote: > > That is me. And I voted no on a broken poposal.
And because some people asked, the kk account is not new. I have been using PHP since about 1997/98, joining the community around the times of the first PHP 3.0 beta-releases. Boris Erdmann and I wrote something called PHPLIB (http://marc.info/?l=php-general&m=90222503034131&w=2, http://marc.info/?l=php-general&m=90281652210710&w=2) which implemented some kind of session management that has been rewritten into the session module of PHP 4. I also wrote the Posix and Recode extensions back then, worked on the LDAP extension, and dissed Zeev because of the C++ way of implementing constructors instead of using __init or __construct (http://www.mail-archive.com/php-dev@lists.php.net/msg36275.html, and many other messages before that). I also annoyed people into implementing __get, __set and __call, which over time became http://php.net/manual/en/language.oop5.magic.php I blogged https://plus.google.com/u/0/+KristianK%C3%B6hntopp/posts/ijoDNH2M8mB, and apparently that motivated a number of people to look into this and form an opinion, which is good. PHP already has too many things that can be enabled and disabled at the language level, and too many ways to enable and disable functionality in the language. It should have one typing system, not many and certainly not any way to switch these on and off, no matter how. At the current state and climate of discussion I personally think it would be best for the language and the community for each and every proposal to change the type system to fail or be withdrawn. From my current experience, it may have been best for the language to have chosen the Python way of things back 20 years ago >>> 3 + "2" Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: unsupported operand type(s) for +: 'int' and 'str' >>> 3 + int("2") 5 >>> 3 + int("2a") Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: invalid literal for int() with base 10: '2a' but it is too late now. Neither of the current proposals actually improves a lot for anybody, but making that improvement optional, how little it may ever be, is just insane. If you MUST have one proposal succeeding, I am of the opinion that one should support the one by Zeev with the modification that it actually warns about things instead of erroring right now (E_DEPRECATED or something), and make that errors in the release after the current. I do think that because it is ONE type system, not optional and because it actually finds things that are broken and complains about these. Just make the transition more gradual than it is now, in order to ease adoption. K -- Kristian Köhntopp http://google.com/+KristianKohntopp
signature.asc
Description: Message signed with OpenPGP using GPGMail