-->

sábado, 10 de novembro de 2007

JAVA

Não adianta, eu não consigo embarcar no bonde dos que veneram a programação em Java. Do ponto de vista do programador pode ser interessante por causa da suposta portabilidade (ainda não vi um game feito para celular rodando em um PC) e da facilidade de programação (um amigo que faz faculdade garante que Java é mais fácil que C++), mas do ponto de vista de um usuário Windows, só vale mesmo a pena para Internet Banking.

Na maioria das vezes que meu Windows começa a ficar estranhamente lento, como se estivesse puxando uma bola de ferro pelos tornozelos virtuais, o danado do ícone da xícara está lá na barra de tarefas. Eu já separei um browser só para acessar Internet Banking, porque se eu fizer isso no meu Firefox vou ter que dar um shutdown no browser (e ter que recarregar 40+ abas) em seguida, já que mesmo fechando as abas do acesso ao banco, a xícara (e a lentidão) não vão embora.

Nas poucas vezes em que encontro uma aplicação Windows "offline" que usa Java, é batata: O software é perceptívelmente lerdo.
  • Acontecia no Windows 95 e continua acontecendo no XP SP2.
  • Acontecia quando eu tinha um Duron 950 com 128MB de RAM e continua acontecendo com um Sempron 2500+ com 1GB de RAM.
É só comigo?

Editado: Estava dando uma olhada agora no artigo Java Performance da en.Wikipedia e encontrei a seguinte "pérola":
Future improvements are planned to preload class data at OS startup to get data from the disk cache rather than on the disk.

Oh, sim... E então a JAVA VM vai ser mais um exemplo de software que finge ser mais rápido atrasando a inicialização do SO e usando sua RAM mesmo quando você não pretende usá-lo!

Editado 2: Esta página sugere que a JRE 6 consome substancialmente menos memória que a JRE 5. Coincidentemente ou não eu ainda estava usando a JRE 5, por isso fiz o upgrade agora. Não que eu acredite que vá sentir a diferença com meus atuais 1,5GB de RAM.

27 comentários:

  1. Não é só com você Jefferson...
    Eu passo pelo mesmo!
    E o pior de tudo, sendo um "formando esse ano" em Engenharia da Computação tenho de conviver com fãs xiitas de Java.
    Existem pontos positivos? Claroque existem, como você mesmo citou alguns, mas está longe de ser o Java o divisor deáguas computacional...

    ResponderExcluir
  2. Normalmente, só uso Java quando uso o Azureus para fazer downloads via torrent e nunca notei nenhuma grande perda de performance. E olha que as vezes deixo o Azureus aberto direto durante dias fazendo downloads de temporadas inteiras de seriados.
    O meu aqui já está atualizado para a última versão.

    []'s
    Daniel

    ResponderExcluir
  3. Daniel,

    Nunca sequer testei o Azureus justamente por ser em Java. Quando preciso de um client bitTorrent uso/recomendo o uTorrent. Principalmente por causa de sua WebUI.

    ResponderExcluir
  4. Daves,

    Pelo jeito, não dá para evitar os xiitas nas faculdades de computação. O filho de um cliente meu disse que no laboratório da faculdade dele existem PCs Linux e Windows que o aluno pode escolher "livremente", mas se escolher o Windows é criticado abertamente pelo professor.

    Isso para executar uma tarefa onde o resultado independe do SO e numa faculdade particular que cobra R$600 de mensalidade.

    ResponderExcluir
  5. Daniel,

    Qual o processador e memória que está usando? Versão do JRE é a mais recente ou só o Azureus? É o PC que você usa no dia-a-dia?

    ResponderExcluir
  6. Azureus também tem uma boa WebUI.

    De Java mesmo eu só uso o Azureus. Considero ele o melhor cliente de torrent. Se o pc estiver ligado, o Azureus ta rodando. Ele nunca apresentou qualquer lentidão em nenhum pc que instalei. Eu nem lembro que ele é Java. O único contra é o consumo de memória que fica entre 60 a 80mb.

    ResponderExcluir
  7. Pra mim que os JRE 1.5.x foram o pico do desperdício de recursos, o 1.6.x vem diminuindo isso, mas está looooonge de ser rápido!

    Lentidão tanto pra carregar o java (No win95 com 32MB de Ram parece mais esperto que num PD9xx 1GB com XP) como pra carregar os menus, depois de eles carregados tudo fica ótimo, como se alguem ficasse olhando os menus por horas, apreciando como se fosse obra de Da Vinci ;-)

    Menus bobos que ajax resolveria como um sonho, mas o webdevloper tem que usar o java que aprendeu no 'aprenda java em 21 dias', aí perdemos 1 minuto entre abrir java e carregar o menu por uma bobeira dessa... no pinouts.ru (Ou outro site de pinagens) era assim e o menu falhava pacas, sem motivo pra usar java naquilo.

    E IE realmente só pra setup de modem e pra banco online ;-)

    ResponderExcluir
  8. O Azureus fica instalado no meu PC de casa, que é um Athlon 64 3000 754 e tenho 1Gb de RAM. Uso o XP 64 bits também. A versão do Azureus é a última (creio eu) que atualizou automaticamente alguns dias atrás, v 3.0.2.2 e a do Java é a 1.6.0_03.

    Gosto do Azureus, por que ele é altamente customizável e tem vários modos de operação, tanto básico para quem só quer fazer downloads como eu e até um mais avançado que vc pode configurar minuciosamente ele para ser um servidor torrent.

    Só para ter idéia, neste exato momento o Azureus está ativo e baixando a terceira temporada completa de DS9, enquanto eu escrevo neste blog.

    []'s
    Daniel

    ResponderExcluir
  9. Não é só no windows que o java exige muito do processador. Eu uso o ubuntu 7.10 e so nao sinto a lentidao por ter um dual core. Mas assim que inicio o azureus ou qualquer outro aplicativo que precisa do java (ate mesmo o acesso ao banco do brasil), o sensor mostra a temperatura do processador passar dos 40° C para os 50° C (com picos em 54° C) e fica ali ate que o java pare de ser usado. O monitor mostra que o java usa 50 % do processador da maquina e um dos nucleos fica sempre em 100 %, alternando entre o 1° e o 2°. Nao é o sistema, pois com o kurumin acontecia o mesmo.
    Popoca

    ResponderExcluir
  10. Rubem,

    Para mim, quando a Google lançou o Gmail provou que Java era ainda menos importante do que eu pensava. É espetacular o que eles fizeram só com Ajax.

    ResponderExcluir
  11. Usei muito tempo Azureus, mas ele realmente exige muito do meu PC desktop (Athlon XP 2400+ com 512 Mb de DDR "simples"). Desde o início do ano uso uTorrent e é como passar da água para o vinho, ainda mais para quem só quer baixar torrents, e nada mais! :D

    ResponderExcluir
  12. Tenho um Semprom com 1Gb, desenvolvendo em java com Netbeans e usando Tomcat e mais o Firefox com +- 90 abas e não tenho problemas de desempenho !!!!

    ResponderExcluir
  13. Enfrento problemas com o ícone da xícara há muitos anos. Em todas as máquinas com Windows XP que dou assistência (a do pai, do tio, da mãe, etc) eu proíbo eles de instalarem o JRE quando o Firefox pede. Se eu não fizer isso, eles me ligam às 23h, quando estou em um bar com os meus amigos, para reclamar que o computador está muito lento.

    Em todos os casos a necessidade de usar o JRE é a mesma: Acessar a conta do Banco do Brasil. Como não posso deixá-los sem isso (nem eu mesmo fico sem), encontrei uma solução:

    Instalei o Microsoft VM (msjavx86.exe), a máquina virtual Java da Microsoft. A instalação tem 5 MB, parece que pesa bem menos, funciona perfeitamente para acessar o site do Banco do Brasil e não traz consigo aquele ícone pavoroso da xícara.

    O problema é que o Microsoft VM só funciona no Internet Explorer. Então o usuário navega tranqüilamente no Firefox, mas quando precisa acessar o site do banco utiliza o IE.

    É uma solução um pouco capenga, sim, mas em compensação não preciso aturar toda aquela lentidão no computador quando a xícara aparece ao lado do relógio e nem sequer preciso aturar o ícone dela toda vez que vou desinstalar alguns programas.

    ResponderExcluir
  14. É o tal negócio: Java só é eficiente rodando aplicações além de nossa imaginação, usando arquiteturas no mínimo tão enjoadas como EJB e em multinacionais que pagam rios de dinheiro. Penso que tanto puxa-saquismo nas faculdades se baseie muito mais nessa recompensa financeira após formado, já que dá para se fazer tudo o que Java faz em outras linguagens.

    Aplicativos Java no Windows, ninguém nem lembra mais! :)

    ResponderExcluir
  15. O Java é mais lento sim do que qualquer outra linguagem simplesmente porque existe a VM. O C++ fala "diretamente" com memória, processador, SO e placas. Já o Java, tem um "tradutor" no meio do caminho, a VM. E claro que, sendo assim, fica um pouco mais lento que o normal.

    Sou usuário do Firefox e sei dos problemas entre os dois.

    Sobre os jogos para celular há um pequeno porém. O JME (java para celulares e outros dispositivos móveis) é relativamente diferente do JSE (dos computadores). Para conseguir rodar os aplicativos é necessário baixar o Wireless Toolkit da SUN: http://java.sun.com/products/sjwtoolkit/download.html

    Sobre as vantagens (e desvantagens) do desenvolvimento e da portabilidade seria um post somente pra isso e não encher o saco tb ou ser um "xiita do java" hehehe

    ResponderExcluir
  16. Caros,

    Não dá para comparar Java com AJAX. Java é uma linguagem de programação que pode ser usada em aplicações web, embarcadas, desktops, etc. enquanto AJAX nem é uma linguagem de programação, mas um padrão de desenvolvimento para aplicações web que usa javascript.
    É claro que existe muita coisa boa capaz de competir com a linguagem Java (como as linguagens do framework .NET, por exemplo), mas certamente AJAX não é uma delas.

    ResponderExcluir
  17. rafa librenz, essa máquina virtual Microsoft funciona bem para acessar a conta "normal" do BB, mas quando se precisa usar mais recursos para empresas (O Office Banking), o Contas a Pagar, etc. não teve jeito: tive qua instalar o Java na máquina do funcionário que acessa... e o pior foi que o Office Banking usa a versão mais recente do Java e o Contas a Pagar OUTRA versão mais antiga... como era uma máquina nova, tive que baixar a mais antiga do próprio site do BB e depois instalar a mais nova. Se partisse direto da mais nova o Contas... não funcuionava! :(

    ResponderExcluir
  18. Roberto,

    Eu entendi o que o Jefferson e o Rubem quiseram dizer quando citaram o AJAX.

    A crítica é a menus em Java que NÃO PRECISAM ser em Java.

    Todos aqui sabemos que Java e Ajax são coisas diferentes e praticamente incomparáveis, só que no caso de fazer um menu você pode optar por qualquer um dos dois, e o problema é usar Java quando Ajax resolve tudo com muito mais eficácia.

    E, só pra constar, eu não gosto de JAVA e também não gosto do framework .NET da Microsoft, acho ambos muito pesados e quase choro quando preciso de algo tão grande pra rodar um programa muito simples e muito pequeno. Mas eu ainda prefiro o .NET. Hehehe...



    VR5,

    Quanta complicação!!! Porque será que eles fazem isso? É absolutamente impossível criar um sistema bancário seguro sem usar Java? Pô! Java é tão antipático...

    ResponderExcluir
  19. Anônimo7/4/08 16:20

    Já tentei de tudo aki na empresa, mas infelizmente os sites dos bancos exigem o maldito java da sun... como já foi dito anteriormente... parece realmente que o computador está puxando uma bola de ferro quando acesso os bancos... horrível esse soft na questão de navegação... não posso dizer nada sobre seu uso para desenvolver aplicações.... acabo também usando o IE pra bancos e o firefox pra navegar normalmente...

    ResponderExcluir
  20. Isso é desde SEMPRE... A linguagem só não emplacou "de verdade" devido a sua lentidão em todas as esferas... Lembro-me que pouco antes de 1999, o Java já era uma promessa e a desculpa é que os hardwares eram "fraquinhos"... A idéia de todo usuário e de todo "programador" era que com o avanço das máquinas, o Java enfim emplacasse... Entretanto, o tempo passou, os computadores evoluiram absurdamente e o Java continuou uma carroça... É até irônico dizer que a Microsoft com seu padrão .net e muito menos tempo de desenvolvimento que o Java, já consegue ser mais rápido na maioria dos cenários (até com C# e J#) que a "xicara de café"... :P

    ResponderExcluir
  21. Eu uso Ubuntu e tô feliz.
    Pô, eu deixo o apache, mysql, java ligado e o Ubuntu fica levinho \o/.

    Já tem um bom tempooo que não uso windows. \o/

    ResponderExcluir
  22. Cara, vcs nao entendem nada sobre Java. O lance de ficar lento ao usar internet Banking é umas uma das especificacoes de java, apenas um applet que roda no seu brownser para dar segurança nas informações. Java é mt mais que isso velho! E o principal foco do java hj é de soluçoes empresariais e sistemas distribuidos (coisa grande), mas alem de tudo, é possivel programar pra dispositimos moveis, desktop, web (eu tenho sites com sistemas rodando em java, fazendo cadastros e acessos a banco de dados). Voces tão tratando java como se fosse um programinha como uma calculadora. Mas o foco é totalmente outro. Não os culpo... mas vos aconselho buscar outra visão mis fundamentada.

    ResponderExcluir
  23. E o outro ali, falando de javascript como se fosse JAVA hehehe meu Deus... estão mt desinformados.

    ResponderExcluir
  24. Anônimo,

    "O outro" quem? Esclareça ou seu comentários será apagado por trolagem

    ResponderExcluir
  25. Carlos,

    Então ficar lento ao usar Internet Banking é proposital?

    Só tenho uma coisa a dizer: "[citation needed]"

    ResponderExcluir
  26. Hummm... Agora que notei que "carlos" e "anônimo" são o mesmo troll.

    ResponderExcluir
  27. O comentário mais sensato até agora foi do Carlos. Tudo bem, a jvm é lenta, mas não como disseram acima. Pelo menos nas máquinas q faço uso diariamente, os programas em java não são assim tão lentos. Pra falar a verdade, depois da versão 6, tenho achado melhor que os programas rodando em VMs dotNet, e q, teóricamente, "deveriam" ser muito mais velozes q a JVM. Digo isso mesmo sendo desenvolvedor C#. Tenho ficado impressionado depois de ter visto algumas aplicações um pouco maiores, rodando com a JVM. Enfim, acho q exageraram em seus comentários.

    ResponderExcluir

Siga as regras do blog ou seu comentário será ignorado.