Ci sono molti motivi per cui una particolare caratteristica linguistica in una lingua potrebbe non essere implementata.
In Java, l'associazione dei dati in Java Beans si basa sulla disposizione tradizionale dei metodi getter e setter, quindi non funzionerebbe con proprietà di prima classe a meno che non si riscrisse il raccoglitore. Perché devi ancora supportare la vecchia maniera, ora hai due modi diversi di fare la stessa cosa.
L'aggiunta di funzionalità linguistiche è costosa, e più la lingua è diffusa e popolare, più è costoso aggiungere la funzione. Ogni caratteristica linguistica che aggiungi deve giustificare la spesa; cioè, deve aggiungere più valore del tempo e degli sforzi richiesti per implementarlo. Ogni aggiunta di funzionalità linguistiche ha un costo opportunità; le risorse di tempo, denaro e programmatore non sono illimitate, quindi implementare una funzione a volte richiede di rinunciare a un'altra.
Eric Lippert descrive il processo meglio di chiunque altro Dice che
Just being a good feature is not enough. Features have to be so
compelling that they are worth the enormous dollar costs of designing,
implementing, testing, documenting and shipping the feature. They have
to be worth the cost of complicating the language and making it more
difficult to design other features in the future.
Un buon esempio di questo processo è proprietà dell'estensione in C #. Le proprietà di estensione sembrano un'aggiunta naturale a C #. Ma non erano essenziali come lo erano i Metodi di estensione. Come spiega Eric :
It was of course immediately obvious that the natural companion to
extension methods is extension properties. It's less obvious, for some
reason, that extension events, extension operators, extension
constructors (also known as "the factory pattern"), and so on, are
also natural companions. But we didn't even consider designing
extension properties for C# 3; we knew that they were not necessary
and would add risk to an already-risky schedule for no compelling
gain.
Quindi non entrarono nel C # 3, che sarebbe stato il posto naturale dove metterli. Ora probabilmente non li otterremo mai, perché non sono davvero abbastanza convincenti come funzionalità autonoma per giustificare la spesa.
Ulteriori letture
Quanti dipendenti Microsoft impiegano per avvitare una lampadina?