Ho visto che Java 1.2 è anche noto come Java 2. "Java 1.x" e "Java x" (ad esempio "Java 1.6" e "Java 6") si riferiscono alla stessa versione di Java?
E se sì, perché la necessità di questa dualità?
Ho visto che Java 1.2 è anche noto come Java 2. "Java 1.x" e "Java x" (ad esempio "Java 1.6" e "Java 6") si riferiscono alla stessa versione di Java?
E se sì, perché la necessità di questa dualità?
Risposte:
All'epoca Sun Microsystems aveva una brutta abitudine di passare attraverso numerose modifiche di denominazione per i suoi prodotti e di usare un nome confuso per cominciare.
Inizialmente il termine "Java" veniva usato per descrivere indiscriminatamente:
Per quanto riguarda i numeri di versione, come altri hanno sottolineato, era in parte a causa del marketing e in parte perché sentivano semplicemente che Java aveva fatto tali progressi, un aggiornamento della versione principale era più adatto (per Java 1.2 / Java 2 e quando Java 1.5 / Java 5).
Quindi, ciò che chiamiamo Java 2 era in realtà Java 1.2 a 1.4. Java 3 e Java 4 non sono mai esistiti e abbiamo saltato direttamente a Java 5, come hanno cercato di spiegare qui (da questa pagina su denominazione e versioning ).
Probabilmente ero anche un po 'a non scherzare con la loro numerazione interna utilizzata nei loro sistemi di tracciamento e sviluppo. Tendo a pensarlo come 1.x = versione del linguaggio e X = lingua e versione del prodotto. Ha senso, poiché gli utenti normali non devono preoccuparsi di piccoli incrementi e aggiornamenti, in quanto incoraggiano gli aggiornamenti automatici e questi non dovrebbero introdurre alcuna modifica alla lingua o al bytecode.
Nota anche che diventa più strano quando guardi le versioni minori e aggiorni i numeri. Ad esempio, avevamo una Java 1.3.1 e successive Java 1.4.1 e 1.4.2.
Tuttavia, non ci sono stati 1.xy da allora, è sempre stato 1.x.0_UPDATE:
Si noti inoltre che verranno visualizzati anche gli aggiornamenti a cui si fa riferimento con una di queste convenzioni di denominazione:
E per ulteriore confusione e per stare al passo con la tradizione di Sun Microsystems, Oracle ora rilascia annunci come questo.
Si noti inoltre che non solo hanno preso l'abitudine di modificare la numerazione, ma anche i nomi delle offerte di prodotti. Quindi, Java 2 ha J2SE (Java 2 Standard Edition), J2EE (Java 2 Enterprise Edition) e J2ME (Java 2 Mobile Edition). Dall'introduzione di Java 5, queste convenzioni e acronimi sono stati abbandonati (anche se alcuni hanno una capacità di recupero incredibilmente lunga, soprattutto grazie alle stupide agenzie di reclutamento che non hanno idea di cosa stiano parlando) a favore di Java SE, Java EE e Java ME , che a volte sono abbreviati - ma non dovrebbero ufficialmente - in JSE, JEE (abbastanza comune) e JME.
Leggere questa pagina per ulteriori informazioni sull'attuale sistema di controllo delle versioni utilizzato da Sun Microsystems e ora Oracle da Java 1.3.1 .
(Per i punti bonus, prova a cercare la cronologia di NetBeans ora per vedere che è stato rinominato alcune volte).
Stanno anche lottando per decidere se aggiornare o meno i riferimenti esistenti. Ad esempio, questa pagina sulle versioni precedenti utilizza il vecchio sistema di numerazione per le versioni precedenti, ma i nomi dei prodotti più recenti (Java SE 1.1, 1.2, 1.3 e 1.4 non sono stati rilasciati con questa convenzione di denominazione).
Forse ci stanno solo fregando per divertimento. Chissà?
Si sono divertiti anche a nominare e numerare lì, ovviamente.
Le specifiche del linguaggio Java venivano rilasciate con un sistema di versioning del libro "edition", seguendo i numeri di prodotto. Così:
Fin qui tutto bene.
Tranne che "Java Language Specification" è stato successivamente modificato solo quando sono state introdotte modifiche alla lingua in Java 5 (che tipo di senso, non pubblicheremo nuove edizioni di libri solo per divertimento). Poiché era la terza volta che lo stavano modificando, lo chiamavano (tada!) "Java Langauge Specification, 3rd edition".
Ma ovviamente, le persone hanno iniziato a chiedersi perché 1.3 e 1.4 non avevano una specifica di lingua o perché Java 5 fosse abbinato a una terza edizione delle specifiche di lingua.
Quindi, Java 7 ora lo chiama semplicemente "Java Language Specification, Java SE 7 Edition", anche se spesso ci riferiamo a questo come JLS7 per abbreviazione ed evitare RSI.
Per ulteriore divertimento, guarda il fallimento della denominazione di Microsoft Windows RT o la follia di denominazione e numerazione di Apple con iPhone, iPad o persino iPod.
La risposta breve: marketing.
Una risposta più lunga: la forma abbreviata (ad es. Java 6) è la cosiddetta "versione del prodotto" ed è il modo in cui Java viene commercializzato agli utenti e nei comunicati stampa, ecc.
La forma più lunga (ad es. Java 1.6.0) è la "versione per sviluppatori". Viene utilizzato internamente e verrà rilevato anche dagli sviluppatori Java (ad esempio java.version
, la proprietà di sistema utilizza la forma lunga).
Vedi queste pagine per maggiori informazioni:
Perché il libro con il titolo "Learn Shiny New Java 3" sarà esaurito prima del libro con il titolo "Novità di Java 1.3".
Quindi sì, sono principalmente ragioni di marketing. D'altra parte, non vedo un crimine grave qui. Dopotutto, in alcuni prodotti, come Mozilla o Chrome, il numero di build principale viene costantemente incrementato e altri continuano a incrementare il numero di build minore, anche se, a volte, ci sono grandi cambiamenti in arrivo con ogni nuova versione.
Alcuni, come Apple, non vogliono lasciarci, utenti, con nomi noiosi come "Mac OS 10.6".
E Sun andava bene con N alias invece di introdurre la versione "Java Green Diplodocus".
TheServerSide spiega la modifica da "Java 1.x" a "Java x" come segue :
Sun ha tagliato il "1" per modificare J2SE 1.5.0 in J2SE 5.0. Il motivo del cambiamento? Sun afferma che "si tratta dell'aggiornamento più significativo alla piattaforma Java e al linguaggio di programmazione dalla sua prima versione, circa un decennio fa", e che questa versione è degna.
Apparentemente si parlava di rinominare "J5SE", ma si pensava che il marchio J2EE significasse troppo per cambiare.
I numeri di versione non sono divertenti?
Leggi il comunicato stampa: Sun presenta la versione più significativa e avanzata della piattaforma Java in 5 anni
Nota: il link nella citazione sopra viene ucciso da Oracle . Per quanto ne so, è disponibile su prnewswire :
Sun Microsystems, Inc. (Nasdaq: SUNW), ideatore
e principale sostenitore della tecnologia Java (TM), ha presentato oggi Java 2 Platform
Standard Edition (J2SE (TM)) 5.0, l'aggiornamento più significativo alla
piattaforma Java e al linguaggio di programmazione da la sua versione iniziale quasi un decennio
fa. Conosciuta come Project Tiger, questa piattaforma Java aggiornata offre una straordinaria facilità
di sviluppo, nuove funzionalità di monitoraggio e gestione delle applicazioni,
un'attenzione dedicata al supporto client avanzato per il desktop del PC e
prestazioni da record ...
Per completezza, notare che lo stile della versione 1.X non è stato completamente abbandonato .
"Versione 1.5.0" utilizzata dagli sviluppatori
J2SE mantiene anche il numero di versione 1.5.0 (o 1.5) in alcuni punti che sono visibili solo agli sviluppatori o in cui il numero di versione viene analizzato dai programmi. Come accennato, 1.5.0 si riferisce esattamente alla stessa piattaforma e ai prodotti numerati 5.0 ...
Si noti inoltre che, come indicato nei commenti, il termine "J2SE" utilizzato in precedenza è stato successivamente modificato in "Java SE".