Domanda

C'è un motivo razionale, per cui proprietà native non saranno parte di Java 7?

È stato utile?

Soluzione

Fare proprietà "giusto" in Java non sarà facile. Il lavoro di Rémi Forax in particolare è stato prezioso nel capire che cosa questo potrebbe essere simile, e scoprendo un sacco di "trucchi" che dovranno essere affrontati.

Nel frattempo, Java 7 ha già preso troppo a lungo. Il dibattito è stato un enorme chiusure, distrazione controverso che sprecato un sacco di mente-potere che avrebbe potuto essere usato per sviluppare caratteristiche (come la proprietà) che hanno un ampio consenso di sostegno. Alla fine, la decisione è stata presa per limitare importanti modifiche alla modularizzazione (Progetto Jigsaw). Solo "piccolo cambiamento" viene presa in considerazione per la lingua (nell'ambito del Progetto Coin).

JavaFX è bella sostegno proprietà, quindi Sun capisce chiaramente il valore degli immobili e sa come realizzarle. Ma essendo stato rovinato da proprietà JavaFX, gli sviluppatori hanno meno probabilità di accontentarsi di un'implementazione cotto a metà in Java. Se sono la pena di fare, vale la pena di fare bene.

Altri suggerimenti

Ci sono alcune ragioni di alto livello relative al programma e le risorse, naturalmente. Attuazione della proprietà e comprendere tutte le ramificazioni e le intersezioni con le altre funzionalità del linguaggio è un compito grande simile alle dimensioni di vari Java 5 lingua cambia.

Ma penso che la vera ragione Sole non sta spingendo proprietà è la stessa di chiusure:

1) Non v'è alcun consenso su ciò che l'applicazione dovrebbe essere simile. O meglio, ci sono molte alternative in competizione e le persone che sono appassionati di proprietà non sono d'accordo su parti cruciali della realizzazione.

2) Forse ancora più importante, v'è una significativa mancanza di consenso sul fatto che la funzione è voluto a tutti. Mentre molte persone vogliono proprietà, ci sono anche molte persone che non pensano che sia necessario o utile (in particolare, credo che la gente sul lato server vedono proprietà come molto meno cruciale per la loro vita quotidiana che i programmatori a battente).

storia Properties qui:

Qualsiasi data cosa è "non si fa" per impostazione predefinita, in modo che nessun motivo particolare è necessario per qualcosa di non rimanere fatto. Piuttosto qualche motivo valido è necessaria per muovere qualcosa da "non fatto" a "pianificato" o "fatto". Nessun motivo sufficientemente convincente è ancora sorto per questa caratteristica del linguaggio.

Ci sono altri due motivi per evitare le proprietà in qualsiasi lingua:

  • Proprietà non sono molto orientati agli oggetti. Che li rende facile scrivere incoraggia il modello in cui l'oggetto serve solo il suo stato interno e il chiamante manipola. L'oggetto deve fornire i metodi di livello superiore e di mantenere i suoi interni privati. La prossima volta che stai noiosamente l'attuazione di un getter, considerare ciò che il chiamante che fare con i dati e se si può solo fornire direttamente che la funzionalità.

  • Proprietà incoraggiano stato mutevole (attraverso setter), il che rende un programma meno parallelizzabile. Come il numero di core va in su, dovremmo essere tutti cercando di rendere i nostri oggetti immutabili per rendere ragionamento concorrente più facile. La prossima volta che stai noiosamente l'attuazione di un setter, provare a rimuovere e rendendo l'oggetto immutabile.

  • Non abbastanza tempo?
  • Non ancora speccato correttamente?
  • difficile aggiungere a Java a causa di implementazione di Java?
  • considera non abbastanza importante, vale a dire le altre cose sono stati prioritiesed?
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top