Hey Jordi, > On 2 Jan 2015, at 14:01, Jordi Boggiano <j.boggi...@seld.be> wrote: > > And I, on the other hand, disagree. > > Looking at it from an OSS maintainer perspective, introducing strict hints in > code would be a huge BC break as I don't know how people use my code, nor if > they validate/coerce their user input early or not. If I suddenly declare > something as int and someone used to pass '5', they get an error. That would > make adoption quite hard in OSS IMO if you don't want to bother people. > > With weak typing on the other hand, I get to remove tons of @param > annotations which would be amazing, and I get additional safeties that *new* > mis-uses (like passing an object in an arg expecting a string, which at the > moment could not be type hinted) will be caught early in the future. > Existing mis-uses probably don't exist much since they'd likely fail further > down in the code execution already, but in case they don't they'd be caught > too and that's a good thing since it makes people look at their buggy code. > As for valid uses of the code, like the '5' above, it keeps working just fine > because it is fine. It's not my call as a library author to decide whether > the users of the lib should cast user inputs to ints or validate them or do > nothing at all.
This is an excellent point which had never occurred to me before! Yes, weakly-typed hints like these are far less likely to break existing code. I should probably mention that in the RFC. Thanks! -- Andrea Faulds http://ajf.me/ -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php