On 22/06/2016 16:58, Rasmus Schultz wrote:
On Wed, Jun 22, 2016 at 11:59 AM, Lester Caine <les...@lsces.co.uk> wrote:
Having worked in other gradually-typed languages like Dart and
Typescript

Out of curiosity, do these languages perform the type analysis at compilation, or at run-time? I'm trying to collate some examples of how other languages have approached the problem.


PHP feels crippled on this point - it's gradually-typed,
but inconsistently so, and inconsistency is the worst kind of evil you
can have in any programming language.

I absolutely agree, we need a plan for how to introduce a consistent gradual typing system. But this RFC is not that plan.



The learning curve for new users isn't increased by the introduction
of property type-hints, it's *decreased*

Except that this proposal doesn't actually make the language consistently type-checked. It adds a few more special cases where you can use type hints, with slightly different behaviour.

To carry on your imagined conversation:

- ooh, I can type-hint properties now!
- wait, what does this error mean? why would I not be able to assign this property by reference? - oh, because the variable holding the reference would have to be type-hinted; how do I do that?
- oh, I can't...



and then in addition they need to go and learn about
php-doc and offline inspection tools and IDEs and so forth.

Interestingly, this is the direction that Hack and Python have both apparently chosen to enshrine - the syntax is baked into the language, but not actually enforced by the standard compiler or run-time in any way. Indeed, "gradual typing" as defined by Jeremy Siek only really makes sense in the context of static analysis.



Sorry, for the rant, but anti-type-hints is just anti-consistency. We
have type-hints, now let's please take another step towards finishing
the job!

Taking lots of little steps "towards" a goal that we've never even properly defined is exactly what leads to *inconsistency* in the language.

I think a number of people are not "anti-type-hints", they just don't agree with this particular implementation.

Regards,
--
Rowan Collins
[IMSoP]

--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to