Pregunta

¿Hay alguna razón racional, razón por la propiedades nativas no serán parte de Java 7

¿Fue útil?

Solución

Hacer propiedades "derecho" en Java no será fácil. El trabajo de Rémi Forax especial ha sido valiosa para averiguar lo que esto podría ser similar, y descubrir una gran cantidad de las "trampas" que tendrán que ser tratado.

Mientras tanto, Java 7 ya ha tomado demasiado tiempo. El debate cierres era una gran distracción, polémica que desperdicia una gran cantidad de poder mental que podría haber sido utilizado para desarrollar características (como propiedades) que tienen un amplio consenso de apoyo. Con el tiempo, se tomó la decisión de limitar cambios importantes en la modularización (Proyecto de Jigsaw). Sólo "pequeño cambio" está siendo considerado para el lenguaje (en la moneda del proyecto).

JavaFX tiene soporte hermosa propiedad, por lo que Sun entiende claramente el valor de las propiedades y sabe cómo ponerlas en práctica. Pero después de haber sido estropeado por las propiedades JavaFX, los desarrolladores son menos propensos a conformarse con una aplicación a medio cocinar en Java. Si vale la pena hacer, vale la pena hacer el bien.

Otros consejos

Hay algunas razones de alto nivel relacionadas para programar y recursos del curso. Implementación de las propiedades y la comprensión de todas las ramificaciones y las intersecciones con otras características del lenguaje es una gran tarea similar al tamaño de varios cambios en el lenguaje Java 5.

Pero creo que la verdadera razón Sol no está empujando propiedades es el mismo que el cierre:

1) No hay consenso sobre lo que la aplicación debe ser similar. O mejor dicho, hay muchas alternativas de la competencia y las personas que sienten pasión por propiedades no están de acuerdo acerca de partes cruciales de la aplicación.

2) Quizás lo más importante, hay una importante falta de consenso acerca de si la característica es buscado en absoluto. Mientras que muchas personas desean propiedades, también hay muchas personas que no creo que sea necesario o útil (en particular, creo que la gente del lado del servidor ver propiedades como mucho menos crucial para su vida diaria que los programadores de swing).

Propiedades de la historia aquí:

Cualquier cosa dada es "no hacer" de forma predeterminada, por lo que no se necesita ninguna razón particular para que algo no permanecerá hecho. Más bien es necesaria alguna razón de peso para mover algo de "no se hace" a "planificado" o "hecho". No hay razón suficientemente convincente hasta ahora ha surgido de esta característica del lenguaje.

Hay dos razones más para evitar propiedades en cualquier idioma:

  • Las propiedades no están muy orientados a objetos. Haciendo que sean fáciles de escribir fomenta el patrón en el que el objeto solo sirve su estado interno y la persona que llama lo manipula. El objeto debe proporcionar métodos de nivel superior y mantener su funcionamiento interno privado. La próxima vez que estés tediosamente la implementación de un captador, considere lo que la persona que llama va a hacer con los datos y si sólo puede proporcionar esta funcionalidad directamente.

  • Propiedades animan estado mutable (a través de los emisores), lo que hace un programa menos paralelizable. A medida que el número de núcleos sube, todos deberíamos estar tratando de hacer que nuestros objetos inmutables para hacer más fácil el razonamiento concurrente. La próxima vez que estés tediosamente la implementación de un organismo, considere la posibilidad de retirarlo y hacer que el objeto inmutable.

  • No hay suficiente tiempo?
  • ¿Todavía no specced correctamente?
  • Es difícil añadir a Java debido a la aplicación de java?
  • considerará que no lo suficientemente importante, se prioritiesed es decir otras cosas?
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top