Version madness

Parece que a Sun se prepara para anunciar novas alterações ao esquema de versões do Java [via Rui Carmo].
Parece-me um bom passo, isto é, se a Sun conseguir finalmente inventar algo que se consiga aguentar durante mais de 1 ano e que contribua para reduzir a confusão em vez de a aumentar ainda mais.
É que ter coisas como "Java 2 Standard Edition v5.0 update 4", que na realidade tem a versão "1.5.0_04-b05", dão cabo da sanidade das pessoas...
A propósito, quem devia dar uma volta ao seu esquema de versões é a comunidade open-source em geral. Começo a ficar farto de software que nunca atinge a versão 1.0, e julgo que não serei o único.
Parece que a versão 1.0 é uma coisa mágica, que só existe a partir do momento que o software se torna über-estável...
Deixem-se disso, versões 0.x deveriam indicar software que ainda não está preparado para consumo público, e não "errr, tenho medo de que ainda tenha por lá um ou dois bugs...".
Esta version paralisis transforma os números de versão em algo sem qualquer significado. Uma versão 0.1.1 devia ter pouco mais do que uma função "main", mas no estado em que estão as coisas até pode ser um monstro de 1 milhão de linhas de código, sem novos bugs descobertos na última meia-dúzia de anos...
PS: Também seria bom se a Sun trouxesse o instalador do Java para o século XXI, e uma nova versão removesse a antiga. Se um gajo não se puser a pau, acaba com o "Java 5.0", "Java 5.0 update 1", "Java 5.0 update 2", "Java 5.0 update 3" e "Java 5.0 update 4", tudo instalado ao mesmo tempo. Caramba, pelo menos façam isto para as minors... (e já agora, que o JDK também se adicionasse à "PATH" e definisse a variável "JAVA_HOME" - é que nem em Windows...)
«Se um gajo não se puser a pau, acaba com o "Java 5.0", "Java 5.0 update 1", "Java 5.0 update 2", "Java 5.0 update 3" e "Java 5.0 update 4", tudo instalado ao mesmo tempo.»
Erm, weird. É que eu há 1 mês fiz uma experiência para tentar ficar com Java 1.4.2 e 1.5.0 instalados em simultâneo (I know, sounds wacko, ossos do ofício; é o que dá ter, na mesma cadeira, que programar em 1.5.0 e testar contratos JML, sendo o JML compatível só com o 1.4.2) e não consegui (nota: ambos através do "RPM in self-extracting file", e o 1.4.2 DEPOIS do 1.5, que já estava instalado -- possivelmente a diferença está num destes pormenores).
Ou será que a Sun tem alguma tecnologia para contrariar a vontade do fruguês? ;)
Por
João Craveiro, em 25 Junho, 2005 21:18
Sim, eu estava a falar da versão para Windows. Em Linux o RPM trata do assunto, apesar de eu usar a versão "tar.gz".
Para conseguires isso com o RPm era apenas uma questão de instalar o segundo pacote com "rpm -ivh --force xxxx.rpm".
Por
Carlos Rodrigues, em 25 Junho, 2005 22:27
Sobre o instalador a coisa é fácil: crias um ficheiro de instalação do InnoSetup e envias a sugestão/patch no BTS da Sun para eles passarem a usar um instalador decente.
O desenvolvimento da próxima versão do Java está a ser bastante aberto (infelizmente ainda não aberto o suficiente, pois o processo de resolução de bugs ainda é moroso), por isso podes contribuir também um bocadinho :-)
Por
CPinto, em 26 Junho, 2005 00:03
Eu também tenho as versões 1.4.2 e 1.5 instaladas em simultâneo (em Windows), isto porque há software que eu preciso de desenvolver (Web Services com o Apache Axis). O 1.5 ainda não experimentei a codar nessa versão mas as novidades são muito fixes, tal vez a mais fixe a de ter passado a haver "printf" também em Java. E também passou a haver enumerações...
Em Linux tive um problema irritante ao tentar puxar o ficheiro de instalação, já não me lembro se o tar.gz se o rpm, mas ao puxar directamente com o browser, aquilo ao tentar descomprimir parava sempre com uma mensagem de ficheiro corrompido. Fiz isso umas cinco vezes até ter mandado um mail para os tipos e eles disseram-me que tinha que tinha que usar o Sun Download Manager. Irra, usar um programa só para ter que puxar um ficheiro, mas não tive outro remédio. Outra coisa que eu não percebo da Sun é porque raio eles não implementam um sistema de downloads deslocalizado, baseado em mirrors, espalhados por todo o mundo, é que o Java ainda é um download comprido, e tem que ser sempre internacional!
Por
pescadorDigital, em 26 Junho, 2005 11:05
@carlos: o RPM vem num "Self-extracting file" (jdk-...-rpm.bin), não é instalado por esse método (corre-se simplesmente o .bin) e, logo, não dá para passar esses argumentos à linha de comandos... :/
Por
João Craveiro, em 26 Junho, 2005 13:50
@João: é verdade, mas dá para descomprimir aquilo sem instalar. Não me lembro agora os detalhes (não tenho aqui um desses pacotes), mas já o fiz.
Eu também tenho as versões 1.4.2 e 1.5 instaladas em simultâneo (em Windows), isto porque há software que eu preciso de desenvolver (Web Services com o Apache Axis).
O AXIS (e o Tomcat) não deveriam ter problemas para funcionar sobre o 5.0. Aliás praticamente tudo deveria funcionar no 5.0 (com excepção das incompatibilidades conhecidas). Mesmo quando a source colide com alguma nova funcionalidade da versão 5.0, sempre se pode passar o parâmetro "-source 1.4" ao "javac".
Em Linux tive um problema irritante ao tentar puxar o ficheiro de instalação, já não me lembro se o tar.gz se o rpm, mas ao puxar directamente com o browser, aquilo ao tentar descomprimir parava sempre com uma mensagem de ficheiro corrompido.
É apenas uma questão de fazer "Save Link As..." em vez de clicar directamente no link. Nunca sequer pus os olhos em cima do Sun Download Manager...
Outra coisa que eu não percebo da Sun é porque raio eles não implementam um sistema de downloads deslocalizado, baseado em mirrors, espalhados por todo o mundo, é que o Java ainda é um download comprido, e tem que ser sempre internacional!
Eles têm mirrors. Os links para download no java.sun.com não apontam sempre para o mesmo endereço. E existem mirrors espalhados por várias localizações geográficas (vários pontos nos EUA e na Europa), mas nenhum em Portugal.
Por
Carlos Rodrigues, em 26 Junho, 2005 14:17
Já agora, antes dava para escolher manualmente de onde se queria puxar o Java, mas depois isso passou a ser feito automaticamente (com que critérios é que eu não sei).
Por
Carlos Rodrigues, em 26 Junho, 2005 14:19
@carlos: tens razão, andei a investigar um bocado, e parece que o que acontece é que o rpm é extraído e instalado silenciosamente. Na pior das hipoteses, é fazer Ctrl+C no momento certo. ;)
De qualquer forma, agora para o FC4, é desaconselhado o uso dos RPMs da Sun, por causa do gcj... :/
Por
João Craveiro, em 26 Junho, 2005 14:43