2010-08-01 10 views
6

Como estoy sentado aquí modificando PircBot, he acabo de dar cuenta de que todo el back-end fue escrito para que admita Java 1.1. Tiene una implementación de cola personalizada, usa tablas hash, implementaciones personalizadas de productor/consumidor basadas en la señalización wait() y notify(), etc. Incluso Commons-lang carece de soporte para las cosas que Java 5 trae a la mesa como genéricos. Puede obtener muchos otros ejemplos de frameworks muy populares que hacen todo lo posible para soportar 1.1.¿Por qué algunos frameworks se niegan a dejar de admitir versiones antiguas de Java?

Mi pregunta es ¿por qué? ¿Por qué ciertas partes de la comunidad Java se niegan a admitir nuevas versiones? Me guío por esta teoría: las versiones anteriores usan versiones anteriores de marcos y JVM anteriores, las versiones más recientes usan marcos actualizados y JVM. Actualizas todo con el software.

Ahora puedo entender parcialmente a las personas que todavía ejecutan Java 1.5, pero 1.1? Si está ejecutando algo antes de eso, obviamente no está actualizando la JVM debido a políticas estúpidas/miedo a lo desconocido, y por lo tanto no va a actualizar a versiones más nuevas de software. Entonces, ¿por qué seguimos apoyándolos?

En una nota relacionada, si usted está escribiendo un nuevo marco debe soportar cualquier cosa < 1.5? ¿Debería tratar de bifurcar frameworks existentes, actualizarlo a 1.5, y luego hablar con los mantenedores sobre su uso?

mucho más específico discusiones (esto es sobre el apoyo en general): Is there still a good reason to support JDK 1.4?

Dropping support for JRE 1.3

+0

Hibernate Core sigue siendo resueltamente compatible con Java 1.4. Sin genéricos, sin enumeraciones. Es exasperante. – skaffman

Respuesta

2

Debido a su fácil! Desde Java 1.1 hasta Java 1.4, solo se introdujeron pequeñas características de lenguaje (strictfp por ejemplo). Entonces, ¿por qué restringirse si no es necesario? Digamos que escribes una clase StringUtil o analizas archivos de Word, simplemente no importa. Simplemente comenzando con Java 5 tiene una mejora en el lenguaje y desde Java 1.0 hasta Java 1.1, por supuesto, clases internas.

Esto es solo para el lenguaje y no tanto para las bibliotecas. Hay interesantes adiciones por supuesto.

1

Creo que la razón más común es, que las nuevas características introducidas en las versiones posteriores no se utilizan de todos modos. Quiero decir, si una biblioteca no usa nuevas características como genéricos o funciones de concurrencia avanzada, no hay gastos generales de compatibilidad.

1

¿Compatibilidad con versiones anteriores?

Cambiar el nivel de apoyo JVM, debe justificar un lanzamiento importante. Es decir. la versión 1.x va a 2.x para indicar esto.

También creo haber leído que para obtener la mayor cobertura en los teléfonos móviles, es necesario apuntar a 1,1. Eso puede ser viejo sin embargo.

1

Sé de al menos una empresa comercial que decidieron que nunca ir más allá de 1.1 para que pudieran correr para siempre en ambas JVM Java y .NET con el mismo código fuente.

+1

Me aseguraré de nunca trabajar para esa compañía. * Enforced * soporte de 1.1 sería doloroso – TheLQ

Cuestiones relacionadas