Pergunta

Existe algum motivo racional, porque propriedades nativas não fará parte do Java 7

Foi útil?

Solução

Fazendo propriedades "direito" em Java não será fácil. O trabalho de Rémi Forax especialmente tem sido valioso em descobrir o que isso pode parecer, e descobrindo um monte de "pegadinhas" que terão de ser tratadas.

Enquanto isso, Java 7 já tomou muito tempo. O debate fechamento foi uma grande distração, controverso que perdi um monte de espírito de energia que poderia ter sido usado para desenvolver características (como propriedades) que têm amplo consenso de apoio. Eventualmente, a decisão foi tomada para limitar grandes mudanças para modularização (Projeto Jigsaw). Apenas "pequena mudança" está sendo considerado para a linguagem (sob o Projeto Coin).

JavaFX tem suporte bela propriedade, então Sun entende claramente o valor das propriedades e sabe como implementá-los. Mas tendo sido estragada por propriedades JavaFX, os desenvolvedores têm menos probabilidade de se contentar com uma implementação cozido metade em Java. Se eles são vale a pena fazer, eles são vale a pena fazer direito.

Outras dicas

Há algumas razões de alto nível relacionados com a programação e recursos de curso. Implementação de propriedades e entender todas as ramificações e os cruzamentos com outros recursos de linguagem é uma grande tarefa semelhante ao tamanho de várias alterações de linguagem Java 5.

Mas eu acho que a verdadeira razão Sun não está empurrando propriedades é a mesma fechamento:

1) Não há consenso sobre o que a implementação deve ser parecida. Ou melhor, há muitas alternativas concorrentes e as pessoas que são apaixonadas por propriedades discordam sobre partes cruciais da implementação.

2) Talvez mais importante, há uma significativa falta de consenso sobre se o recurso é procurado em tudo. Enquanto muitas pessoas querem propriedades, há também muitas pessoas que não acho que seja necessário ou útil (em particular, acho que do lado do servidor as pessoas vêem propriedades como muito menos cruciais para a sua vida diária do que programadores balanço).

história Propriedades aqui:

Qualquer coisa dada "não é feito" por padrão, então nenhuma razão especial é necessária para que algo não permanecem feito. Em vez alguma razão convincente é necessária para mover algo do "não feito" para "planejado" ou "feito". Não suficientemente razão convincente ainda surgido para este recurso de linguagem.

Há mais duas razões para propriedades Evitar em qualquer idioma:

  • Propriedades não são muito orientada a objeto. Tornando-os fáceis de escrever incentiva o padrão onde o objeto apenas serve seu estado interno e as manipula chamadas de TI. O objeto deve fornecer métodos de nível mais alto e manter seus internos privado. Da próxima vez que você está implementando tediosamente um getter, considere o que o chamador irá fazer com os dados e se você pode apenas fornecer essa funcionalidade diretamente.

  • Propriedades incentivar estado mutável (através de setters), o que torna um programa menos paralelizável. Como o número de núcleos sobe, todos nós devemos estar tentando fazer nossos objetos imutáveis ??para fazer raciocínio concorrente mais fácil. Da próxima vez que você está implementando tediosamente um setter, considere removê-lo e fazer o objeto imutável.

  • Não há tempo suficiente?
  • Ainda não specced corretamente?
  • Difícil de acrescentar ao java, devido à implementação de java?
  • Considerado o suficiente não é importante, ou seja, outras coisas foram prioritiesed?
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top