Desde un punto de vista empresarial, la evolución de un idioma no es algo bueno, en realidad es bastante malo.
Es por eso que escuchas lenguajes antiguos como cobol, fortran e incluso C escritos con los números del año después de ellos - muchas empresas se quedan con ese año.
Además de eso, los equipos más grandes significan más posibilidades de que alguien en su equipo haga cosas que otros no entienden, por lo que hay un valor importante pero subestimado para mantener un lenguaje simple y limpio. Esto significa no agregar demasiadas formas alternativas de hacer las cosas.
Trabajé con Ruby y tenía algo que ver con el idioma, pero al verlo desde un punto de vista empresarial, era un lenguaje absolutamente aterrador. No podía contar las formas en que un programador malo podría arruinar a un equipo grande, forzándolos a pasar días desenredando un desastre creado en minutos.
Hay empresas que se niegan a ir a Java 5.0 debido a la complejidad de los genéricos. (Todavía estamos trabajando en 1.3x, pero eso es por otra razón).
Y, sinceramente, la mayoría de las "mejoras" le compran muy poco. Algunos cambios de sintaxis, la capacidad de eliminar algunos niveles de llaves.
No puedo pensar en un solo caso en el que Java me haya obligado a repetir la lógica comercial (que es lo que me preocupa cuando trato de hacer que mi código sea "DRY"): es un lenguaje suficientemente limpio para sé completamente SECO si eres un buen programador.
Por ejemplo, todo lo que puede hacer con un cierre que puede hacer con una subclase sin repetir la lógica comercial: lo que termina tiene peor aspecto debido a capas de llaves/definiciones de clase adicionales, pero a menudo es más reutilizable (puede extender la clase que usa para implementar su devolución de llamada, pero no puede ampliar un método de cierre, tiene que volver a escribirlo)
No me sentí de esta manera sobre el código durante las primeras décadas de mi carrera (ME ENCANTEN los trucos del lenguaje, el más funky, mejor), pero ahora llevo mucho tiempo en esto: podría ser mi vejez infiltrándome, o podría ser experiencia, pero ahora veo grandes beneficios en lo simple, explícito, código estable (ofrecido por un lenguaje que no te deja jugar trucos) y realmente no puede encontrar una ventaja única para muchos métodos alternativos ds, incluso si guardan una o dos líneas de tipeo.
Si está buscando una actualización de Java, sin embargo, mire Scala. Es bastante increíble, todavía se ejecuta en la JVM, interactúa con Java, etc.
Voy a responder con otra pregunta. ¿Por qué Microsoft, poniendo tanto esfuerzo en las características de "lenguaje elegante" como linq, árboles de expresiones y todo eso, ¿por qué simplemente ignoran la experiencia del mundo de Java? Hace 5 años la gente en Java Hibernate hicieron ... – badbadboy
ahora que salió con LINQ a las entidades que es algo no demasiado muy emocionante para ser honesto .... Son tan muy por detrás en algunas otras cosas ... La comunidad – badbadboy
puede hacer bibliotecas, por ejemplo, NHibernate. Tiene sentido que MS haga un trabajo 'central' como el lenguaje y las mejoras de tiempo de ejecución. C# 3 es * mucho * más agradable de usar que Java 6 - y mucho mejor que C# 1. –