2010-08-01 12 views
6

Mentre sono seduto qui a modificare PircBot, ho appena notato che l'intero backend è stato scritto per supportare Java 1.1. Ha un'implementazione personalizzata della coda, utilizza tabelle hash, implementazioni personalizzate del produttore/consumatore basate sulla segnalazione wait() e notify(), ecc. Anche Commons-lang non ha alcun supporto per le cose che Java 5 porta sul tavolo come generici. Puoi tirare un sacco di altri esempi di framework molto popolari che cercano il più possibile per supportare 1.1.Perché alcuni framework rifiutano di abbandonare il supporto per le antiche versioni di Java?

La mia domanda è perché? Perché alcune parti della comunità Java si rifiutano di supportare nuove versioni? Seguo questa teoria: le vecchie versioni utilizzano versioni precedenti di framework e JVM precedenti, le versioni più recenti utilizzano framework aggiornati e JVM. Si aggiorna tutto con il software.

Ora posso parzialmente capire che le persone utilizzano ancora Java 1.5, ma 1.1? Se esegui qualcosa prima di quello, allora ovviamente non stai aggiornando la JVM a causa di politiche stupide/paura della sconosciuta, e quindi non stai andando ad aggiornare a versioni più recenti del software. Quindi, perché li stiamo ancora supportando?

Su una nota correlata, se si sta scrivendo un nuovo framework, è necessario supportare qualsiasi cosa < 1.5? Dovresti provare a forgiare strutture esistenti, aggiornandole a 1.5, quindi parlare con i manutentori del loro utilizzo?

molto più specifico discussioni (si tratta di supporto in generale): Is there still a good reason to support JDK 1.4?

Dropping support for JRE 1.3

+0

Hibernate Core è ancora risolutamente compatibile con Java 1.4. Niente generici, niente enumerazioni. È esasperante. – skaffman

risposta

2

Perché la sua facile! Da Java 1.1 a Java 1.4 sono state introdotte funzionalità linguistiche minuscole (ad esempio strictfp). Quindi, perché limitarti se non ne hai bisogno. Quindi diciamo che si scrive una classe StringUtil o si analizzano file di Word, quindi semplicemente non importa. Appena iniziando con Java 5 hai miglioramenti del linguaggio e da Java 1.0 a Java 1.1 ovviamente le classi interne.

Questo è solo per il linguaggio e non tanto per le biblioteche. Ci sono naturalmente aggiunte interessanti.

1

Penso che la ragione più comune sia che le nuove funzionalità introdotte nelle versioni successive non vengono comunque utilizzate. Voglio dire, se una libreria non usa nuove funzionalità come i generici o le funzionalità di concorrenza avanzate, non c'è affatto un sovraccarico di compatibilità.

1

Compatibilità con le versioni precedenti?

La modifica del livello di supporto JVM dovrebbe garantire una versione principale. Cioè la versione 1.x passa a 2.x per indicare ciò.

Anche io credo di aver letto che per ottenere la massima copertura nei telefoni cellulari, è necessario targetizzare 1.1. Potrebbe essere vecchio però.

1

Conosco almeno un'impresa commerciale che ha deciso che non si sarebbero mai spostati oltre l'1.1 in modo che potessero girare per sempre su JVMS e .NET java con lo stesso codice sorgente.

+1

Sarò sicuro di non lavorare mai per quella compagnia. * Il supporto forzato di 1.1 sarebbe doloroso – TheLQ

Problemi correlati