Am 20.11.2023 um 22:00 schrieb Lanre Waju <la...@online-presence.ca>:
> I will have to disagree with everything you said:

Side-note: This is IMHO not a good intro into a discussion ;-)

> I outlined what a static class would be: A class that cannot be instantiated 
> in which all members are implicitly static. We already have static members, 
> so please elaborate on the maintenance burden that adding static to a class 
> as that could help explain better, i mean what feature doesn't have technical 
> debt associated with it? The new JIT engine?

That is his point: The benefit has to outweigh the debt and for something like 
a class modifier this can lead to a matrix of possible combinations, 
complication things down the line.

>>> 3. It is entirely opt-in. If you hold reservations about using static
>>> classes, you can simply choose not to use them.
>> This is a spurious and disingenuous argument, even if it gets trotted out 
>> frequently on many RFCs.  I'm not picking on you in particular here, but 
>> it's a bad argument to use, period, 99% of the time, no matter who is saying 
>> it.
> If you insist, Mr. Larry.

I’m with Larry there: Being able to just ignore new features is sometimes 
helpful (i.e. avoids the discussion about BC) but not a strong argument on 
*why* something should be added. This lists very much also cares about the 
implementation and maintenance costs as well as the simplicity/consistency of 
PHP. Being opt-in just does not carry much weight in that context.

>> Similarly, if we add a static marker to classes, that means all future 
>> improvements to classes need to consider "but what if the class is static?"  
>> Eg, there was discussion a while back about `data` classes.  What happens if 
>> you have a `static data class`?  Is that a syntax error?  Does it work?  If 
>> it works, what does "work" mean?  What about sealed classes?  Can you have a 
>> sealed static class?  What would that mean?  Those are questions that would 
>> need to be answered, because this feature exists.
> Either i'm in an alternate reality where the data classes and sealed classes 
> rfcs passed, or I've just been straw-manned. Either way, is it really that 
> difficult to decide on as a community what a static data class implies? We 
> have already established that a static class means all the members are 
> static, but i can try to dumb it down for you if need be.

Being a long time member of this list (even though with only very occasional 
contributions to the source code) I have to say: There is a wide range of 
experience in both language design and implementation (for both PHP and in 
general) represented here, some members coming from an almost exclusively 
language-user point of view. And that is a great thing!
But I’d recommend to not underestimate the knowledge contributed by people who 
have been involved for some time and possibly even learned from previous 
mistakes :-)

Having said all that I just wanted to add that I would most probably vote 
against static classes even though we use class-as-a-namespace here sometimes 
but still don’t feel the need for it to being a language feature for the 
reasons mentioned by Rowan and Larry.

Regards,
- Chris

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

Reply via email to