Por que o Java versão 1.X é conhecido como Java X?


58

Vi que o Java 1.2 também é conhecido como Java 2. "Java 1.x" e "Java x" (por exemplo "Java 1.6" e "Java 6") se referem à mesma versão do Java?

E se sim, por que a necessidade dessa dualidade?


7
Razões de marketing?

14
Ainda melhor que o Mozilla Firefox. Mais de 10 versões principais em menos de dois anos.
Andrzej Bobak

2
Sim, razões de marketing. Esta questão SO é sobre o mesmo tópico.
Joachim Sauer

2
Alguém poderia dizer o contrário: por que a Sun (e agora a Oracle) lançou grandes atualizações (Java 5, 6, 7 e em breve 8) como lançamentos pontuais (1.5, 1.6, 1.7 e em breve 1.8)?
Joachim Sauer

3
@AndrzejBobak Google Chrome é pior, ele está se aproximando 20 versões em 2 anos
Izkata

Respostas:


64

A Sun Microsystems tinha na época um péssimo hábito de passar por inúmeras alterações de nomes para seus produtos e usar nomes confusos para começar.

O que há em um nome ou o que significa "Java"?

Originalmente, o termo "Java" estava sendo usado para descrever indiscriminadamente:

  • a linguagem ,
  • a plataforma ,
  • e alguns outros se referiram à JVM e à Java Class Lib como apenas Java também.

Número interno e externo

Com relação aos números de versão, como outros apontaram, isso ocorreu em parte por causa do marketing e em parte porque eles simplesmente sentiram que o Java havia feito esse progresso. 5)

Então, o que chamamos de Java 2 era na verdade Java 1.2 a 1.4. O Java 3 e o Java 4 nunca existiram, e pulamos diretamente para o Java 5, como eles tentaram explicar aqui (nesta página sobre nomeação e versão ).

Eu provavelmente também não estava mexendo com a numeração interna usada nos sistemas de rastreamento e desenvolvimento. Costumo pensar nisso como 1.x = versão do idioma e X = versão do idioma e do produto. Faz sentido, pois os usuários normais não precisam se preocupar com pequenos incrementos e atualizações, pois incentivam atualizações automáticas, e elas não devem introduzir nenhuma alteração no idioma ou no bytecode.

Observe também que fica mais estranho quando você olha versões menores e atualiza números. Por exemplo, tínhamos um Java 1.3.1 e posterior Java 1.4.1 e 1.4.2.

Atualizações

No entanto, não havia 1.xy desde então, sempre houve 1.x.0_UPDATE:

Observe também que você também verá atualizações mencionadas com uma destas convenções de nomenclatura:

  • como 1.5.0_22 ou 1.7.0_04 (observe os 0s de preenchimento na versão de atualização, alinhando 2 dígitos),
  • mas também 1.5.0u22 ou 1.7.0u4 (observe que os 0s do preenchimento se foram, yay!).

E para maior confusão e para acompanhar a tradição da Sun Microsystems, a Oracle agora lança anúncios como este.

Nomes de produtos

Observe também que eles não apenas adquiriram o hábito de alterar a numeração, mas também os nomes das ofertas de produtos. Portanto, o Java 2 possui o J2SE (Java 2 Standard Edition), o J2EE (Java 2 Enterprise Edition) e o J2ME (Java 2 Mobile Edition). Desde a introdução do Java 5, essas convenções e acrônimos foram descartados (embora alguns tenham uma resiliência incrivelmente longa, principalmente graças a agências de recrutamento idiotas que não têm idéia do que estão falando) em favor do Java SE, Java EE e Java ME , que às vezes são abreviados - mas não deveriam oficialmente - para JSE, JEE (bastante comum) e JME.

Você leu esta página para obter mais informações sobre o sistema de versão atual usado pela Sun Microsystems e agora Oracle desde o Java 1.3.1 .

(Para obter pontos de bônus, tente pesquisar o histórico do NetBeans agora para ver se ele também foi renomeado algumas vezes).

Eles não se conhecem

Eles também estão lutando para decidir se devem atualizar novamente as referências existentes ou não. Por exemplo, esta página sobre liberações mais antigas usa o sistema de numeração antigo para liberações antigas, mas os nomes de produtos mais recentes (Java SE 1.1, 1.2, 1.3 e 1.4 não foram liberados com esta convenção de nomenclatura).

Talvez eles estejam apenas brincando conosco por diversão. Quem sabe?

E o JVMS e o JLS?

Eles se divertiram com nomes e numerações também, é claro.

A Java Language Specification costumava ser lançada com um sistema de versão de "edição" de livros, seguindo os números dos produtos. Assim:

  • O Java 1 teve sua "Java Language Specification",
  • O Java 2 teve sua "Java Language Specification, 2ª edição".

Por enquanto, tudo bem.

Exceto que a "Especificação da linguagem Java" foi posteriormente reeditada apenas quando as alterações de linguagem foram introduzidas no Java 5 (que faz sentido, você não publicará novas edições de livros apenas por diversão). Como foi a terceira vez que o editaram, eles o chamaram (tada!) "Java Langauge Specification, 3rd edition".

Mas, obviamente, as pessoas começaram a se perguntar por que o 1.3 e o 1.4 não tinham uma especificação de linguagem ou por que o Java 5 foi combinado com uma terceira edição da especificação de linguagem.

Portanto, o Java 7 agora está apenas chamando-o de "Especificação da Linguagem Java, Java SE 7 Edition", embora muitas vezes nos referimos a esse como JLS7 para abreviar e evitar RSI.


Eles não são os únicos ...

Para diversão adicional, observe a falha de nomeação do Microsoft Windows RT ou a loucura de nomeação e numeração da Apple com iPhones, iPads ou até iPods.


"observe os 0s à direita" Quais 0s à direita?
Samuel Edwin Ward

@ SamuelEdwinWard: desculpe, confusão de idiomas por lá. Quero dizer o prefixo 0s após o _ entre o número da versão e o número da atualização.
haylem

Eu realmente não acho que é isso que significa Porte-Manteau ou Portmanteau.
Grady Player

@GradyPlayer: você está perfeitamente certo, na verdade. Obrigado por apontar isso. (edit: atualizou o cabeçalho, isso foi realmente muito idiota da minha parte).
haylem

5

A resposta curta: Marketing.

Uma resposta mais longa: o formato abreviado (por exemplo, Java 6) é a chamada "versão do produto" e é como o Java é comercializado para os usuários e em press releases, etc.

O formato mais longo (por exemplo, Java 1.6.0) é a "versão do desenvolvedor". É usado internamente e também será encontrado pelos desenvolvedores Java (por exemplo java.version, a propriedade do sistema usa o formato longo).

Veja estas páginas para mais informações:


2

Como o livro com o título "Learn Shiny New Java 3" será esgotado antes do livro com o título "What's new in Java 1.3".

Então, sim, é principalmente razões de marketing. Por outro lado, não vejo um crime grave aqui. Afinal, em alguns produtos, como Mozilla ou Chrome, o número principal de compilações é constantemente incrementado e outros se apóiam em aumentar o número menor de compilações, embora, às vezes, ocorram grandes mudanças com cada nova versão.

Alguns, como a Apple, não querem nos deixar, usuários, com nomes chatos como "Mac OS 10.6".

E a Sun costumava ficar bem com o Nias, em vez de apresentar o lançamento do "Java Green Diplodocus".


4
Sidenote: nunca houve um Java 3, era o Java 2 SE 1.3 (ou J2SE 1.3). Somente com o Java 1.5 / 5.0 / 5 eles se livraram dos números "1.x" do marketing. Sim, mesmo que o Java 1.2 (e 1.3 e 1.4!) Fosse chamado de "Java 2" ... marketing, sim!
Joachim Sauer

1

TheServerSide explica a mudança de "Java 1.x" para "Java x" da seguinte maneira :

A Sun cortou o "1". para alterar o J2SE 1.5.0 para o J2SE 5.0. O motivo da mudança? A Sun afirma que "esta é a atualização mais significativa para a plataforma Java e a linguagem de programação desde o seu lançamento inicial, há quase uma década", e que esta versão é válida.

Aparentemente, houve conversas para renomear para "J5SE", mas houve o pensamento de que a marca J2EE significa muito para mudar.

Os números de versão não são divertidos?

Leia o comunicado à imprensa: Sun apresenta o lançamento da plataforma Java mais significativo e avançado em 5 anos

Observe que o link na citação acima foi eliminado pela Oracle . Até onde eu sei, ele está disponível no prnewswire :

A Sun Microsystems, Inc. (Nasdaq: SUNW), criadora
e principal advogada da tecnologia Java (TM), lançou hoje o Java 2 Platform
Standard Edition (J2SE (TM)) 5.0, a atualização mais significativa para a
plataforma Java e a linguagem de programação desde seu lançamento inicial há quase uma década
. Conhecida como Project Tiger, essa plataforma Java atualizada oferece uma incrível facilidade
de desenvolvimento, novos recursos de monitoramento e gerenciamento de aplicativos, um
foco dedicado no suporte ao cliente rico para a área de trabalho do PC e um
desempenho recorde ...


Por uma questão de integridade, observe que o estilo da versão 1.X não foi completamente descartado .

"Versão 1.5.0" usada pelos desenvolvedores

O J2SE também mantém o número da versão 1.5.0 (ou 1.5) em alguns locais visíveis apenas aos desenvolvedores ou onde o número da versão é analisado pelos programas. Como mencionado, 1.5.0 refere-se exatamente à mesma plataforma e produtos numerados 5.0 ...

Observe também que, conforme apontado nos comentários, o termo "J2SE" usado acima foi posteriormente alterado para "Java SE".


4
Felizmente, eles abandonaram os nomes "J2SE" (e mais tarde "J2EE") em favor de "Java SE" e "Java EE". "J2SE 5.0" estava apenas sendo bobo.
Joachim Sauer
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.