Qual sistema você acha melhor?

Porém em grande parte dos casos o desempenho do computador em si é gargalado pelo acesso a disco, logo um ponto que influi muito na experiencia de uso de um desktop é a velocidade de acesso a disco, que é afetada pelo sistema de arquivos. No windows estamos limitados a FAT e NTFS, já no linux temos inúmeras opções, eu por exemplo utilizo ReizerFS com algumas alterações nas opções de inicialização que deixam o acesso a disco muito rápido. Além é claro dos programas compilados para a sua arquitetura, ou a supremacia no que tange a 64 bits, onde o windows até a época que eu mexi sofria com problemas de drivers e softwares compativeis.

Nisso eu concordo com você. O io no linux é muito eficiente. Mas desempenho do sistema não é só disco, mas video e alocação de memória. A intel contribuiu muito para esses drivers opensource. Se todas as outras fizessem isso o linux era top. Mas como sabemos dependemos de periféricos proprietários.

[quote=juliocbq]
Sim, você está certo. Mas no bench mais importante que é o java 2d ele perdeu. O swing não roda sobre nenhum toolkit gráfico, ele é o único toolkit nativo da própria jvm. O swing roda em cima do java2d que é um mapeamento das bibliotecas opengl do sistema. Por exemplo no win posso optar por usar o direct3d como backend do java2d.

Isso quer dizer que todas as suas aplicações gráficas(desde simples interfaces até modelos 3d) vão ter desempenho reduzido.

Mas isso não é culpa do linux, mas das empresas que mantêm esses drivers proprietários.[/quote]Não sei porque diz que o bench mais importante é o de Java2D. Se você trabalha com, por exemplo, webserver, o java2d é possivelmente a menor das preocupações. Pode ser que no seu caso, ele seja o mais importante, mas isso não é algo universal.

Sobre o swing rodar sobre java2d, o que me lembro é que o swing usa componentes GTK se estiverem disponíveis no Linux, se não usa uma outra lib que não lembro o nome (mas com os componentes redesenhados pelo java2d para serem iguais aos mesmos componentes no GTK). Já no Windows, idem a outra lib do linux, usa os componentes do linux, mas redesenhados pelo java2d. (claro, a menos que você force nas configs do swing para ele usar java2d+opengl para tudo)

E mesmo o java2d, não é sempre que ele usa opengl.

[quote=evefuji][quote=juliocbq]
Sim, você está certo. Mas no bench mais importante que é o java 2d ele perdeu. O swing não roda sobre nenhum toolkit gráfico, ele é o único toolkit nativo da própria jvm. O swing roda em cima do java2d que é um mapeamento das bibliotecas opengl do sistema. Por exemplo no win posso optar por usar o direct3d como backend do java2d.

Isso quer dizer que todas as suas aplicações gráficas(desde simples interfaces até modelos 3d) vão ter desempenho reduzido.

Mas isso não é culpa do linux, mas das empresas que mantêm esses drivers proprietários.[/quote]Não sei porque diz que o bench mais importante é o de Java2D. Se você trabalha com, por exemplo, webserver, o java2d é possivelmente a menor das preocupações. Pode ser que no seu caso, ele seja o mais importante, mas isso não é algo universal.

Sobre o swing rodar sobre java2d, o que me lembro é que o swing usa componentes GTK se estiverem disponíveis no Linux, se não usa uma outra lib que não lembro o nome (mas com os componentes redesenhados pelo java2d para serem iguais aos mesmos componentes no GTK). Já no Windows, idem a outra lib do linux, usa os componentes do linux, mas redesenhados pelo java2d. (claro, a menos que você force nas configs do swing para ele usar java2d+opengl para tudo)

E mesmo o java2d, não é sempre que ele usa opengl. [/quote]

Eu falei do exemplo do java2d porque ele usa os drivers de vídeo do sistema. Dessa maneira dá para ter uma noção que o driver proprietário é mais otimizado que o opensource.

O swing não depende de nada externo da jvm. Por isso ele é mais “lerdo” de certa forma que os nativos. O qt framework faz isso da mesma maneira.

Dá uma lida aqui

Já o swt usa o gtk como backend e winforms no windows, cocoa no mac, etc…

Android é melhor! quer saber porque?

  1. Android roda em uma infinidade de hardwares, coisa que não acontece com o IOs
  2. Milhões de aplicações rodam em Android, independentemente da Google concordar (como é o caso da Apple)
  3. No android você pode trocar o papel de parede e escolher a música para toque de chamada do seu celular
  4. Android te dá liberdade
  5. O IOs é extremamente engessado, dependente da Apple e do seu hardware e provavelmente este modelo não vai durar muito
  6. Android cresce mais a cada dia e logo será soberano

Dizem por aí que IOs/MacOS são sistemas operacionais ótimos! Ótimos? São totalmente engessados, dependentes de hardware e da Apple, não roda quase nada e não te deixa fazer nada… ora bolas, assim é ótimo mesmo! Você não pode rodar nada, não pode personalizar nada, não pode fazer nada… só pode fazer o caminho feliz!!! é claro que é uma beleza… mas eu não concordo com este modelo e prefiro a liberdade que o Android me dá… já vendí o meu IPhone e estou com um Galaxy e não me arrependo… o futuro pertence ao Android!!!

Errado. Voce pode instalar Linux/Windows no hardware Apple e ate configurar dualboot se quiser. Inclusive o uso de um segundo SO tem suporte da Apple[/quote]

Isso mesmo. Existem muitos tutoriais na net ensinando sobre isso:

http://br-linux.org/linux/instalando-o-ubuntu-em-mac-tutorial-em-portugues

[/quote]

Faço das suas as minhas palavras. Até mesmo o Ubuntu, que tem é mais amigável tem seus problemas e dificuldades de configuração.

Eu tenho o Ubuntu aqui, mas sei o quanto sofro com ele. Infelizmente está longe do esmero de facilidade e interatividade de SO’s como o Windows e, principalmente, o MacOS.

[quote=juliocbq]
Eu falei do exemplo do java2d porque ele usa os drivers de vídeo do sistema. Dessa maneira dá para ter uma noção que o driver proprietário é mais otimizado que o opensource.

O swing não depende de nada externo da jvm. Por isso ele é mais “lerdo” de certa forma que os nativos. O qt framework faz isso da mesma maneira.

Dá uma lida aqui

Já o swt usa o gtk como backend e winforms no windows, cocoa no mac, etc…[/quote]Dá uma olhada nisso então: http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

E não é um pouco estranho falar “o swing não depende de nada externo da jvm”? Ele usando GTK (a JVM) ou não, ele ainda precisa fazer chamadas ao SO. Se a JVM encapsula isso para você não quer dizer que não depende de nada externo.

E o Swing no linux não é tão lerdo quanto no Windows, para falar a verdade, ele é bem rápido. E não falo só do tempo de carregamento do netbeans, várias aplicações que eu uso carregam bem mais rápido no Linux, como o JDownloader, SQL Power Architect, etc…

Já a questão de ser mais pesado que outras aplicações no Windows, hoje em dia não é mais, está praticamente com o mesmo desempenho do SWT. Iniciar a JVM em si já demora mais que iniciar outras aplicações, mas quanto ao peso da interface gráfica já não é mais tão diferente de aplicações nativas.

[quote=evefuji][quote=juliocbq]
Eu falei do exemplo do java2d porque ele usa os drivers de vídeo do sistema. Dessa maneira dá para ter uma noção que o driver proprietário é mais otimizado que o opensource.

O swing não depende de nada externo da jvm. Por isso ele é mais “lerdo” de certa forma que os nativos. O qt framework faz isso da mesma maneira.

Dá uma lida aqui

Já o swt usa o gtk como backend e winforms no windows, cocoa no mac, etc…[/quote]Dá uma olhada nisso então: http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html

E não é um pouco estranho falar “o swing não depende de nada externo da jvm”? Ele usando GTK (a JVM) ou não, ele ainda precisa fazer chamadas ao SO. Se a JVM encapsula isso para você não quer dizer que não depende de nada externo.

E o Swing no linux não é tão lerdo quanto no Windows, para falar a verdade, ele é bem rápido. E não falo só do tempo de carregamento do netbeans, várias aplicações que eu uso carregam bem mais rápido no Linux, como o JDownloader, SQL Power Architect, etc…

Já a questão de ser mais pesado que outras aplicações no Windows, hoje em dia não é mais, está praticamente com o mesmo desempenho do SWT. Iniciar a JVM em si já demora mais que iniciar outras aplicações, mas quanto ao peso da interface gráfica já não é mais tão diferente de aplicações nativas. [/quote]

A wiki em inglês está mais completa que a português, vou postá-la aqui:

  1. Não usa o gtk, ele simula o gtk. Faça um teste, rode o netbeans no ubuntu e depois compare com uma aplicação nativa como o gnome-mplayer. Os componentes são diferentes.
  1. Swing possui seu próprio sistema de sinais.
  1. O swing consome muito mais memória que um toolkit nativo por razões óbvias. A máquina virtual o carrega todo em memória mesmo para aplicações mais simples, porque todo o mecanismo de sinais e pintura dos componentes depende dele mesmo.

cara, você desconsidera a página oficial da oracle para considerar a wiki? A wiki pode até ser boa, mas principalmente referente a java não é mais confiável que a página da Oracle…

Claro que eu confio na wiki cara, eu vivo usando isso em meus projetos. Tem componente que o swing nem consegue desenhar direito. Um exemplo é a Jprogress bar.

Até é uma idéia legal você desconfiar desses artigos, mas esse está certo.

Swing

vs

Nativo(Winforms)

Olha a diferença entre eles.

então, mas vc leu a página oficial que te passei?

Obs: somente fala do swing nessa página:

Sobre as imagens do Winforms x Swing que vc mandou, é plenamente possível deixar o winforms igual ao Swing, e vice versa. E como eu disse antes, o swing redesenha o componente do winforms (caso exista) para ficar igual em todas as plataformas.

Bom, não adianta continuar nessa discussão, rsrs. E a conversa já fugiu do assunto do tópico.

[quote=evefuji]então, mas vc leu a página oficial que te passei?

Obs: somente fala do swing nessa página:

Sobre as imagens do Winforms x Swing que vc mandou, é plenamente possível deixar o winforms igual ao Swing, e vice versa. E como eu disse antes, o swing redesenha o componente do winforms (caso exista) para ficar igual em todas as plataformas.

Bom, não adianta continuar nessa discussão, rsrs. E a conversa já fugiu do assunto do tópico. [/quote]

Você é quem sabe, mas o próprio link que você postou fala a mesma coisa que a wiki. O problema é que a Oracle é péssima em artigos e explicações.

[quote=Oracle]
For Linux and Solaris, the System L&Fs are “GTK+” if GTK+ 2.2 or later is installed, “Motif” otherwise. For Windows, the System L&F is “Windows,” which mimics the L&F of the particular Windows OS that is running?classic Windows, XP, or Vista. The GTK+, Motif, and Windows L&Fs are provided by Sun and shipped with the Java SDK and JRE, although they are not part of the Java API.[/quote]

E não adianta mexer na jprogressbar, ela não fica igual ao do winforms, a não ser que você implemente um l&f e desenhe perfeitamente. A minha no caso chega a ficar até um pouco torta quando a barra está no 100% (no exemplo que fiz aqui, coloquei-a em um jframe: ela corta a última borda)


Pois é continuo no ubuntu mesmo … mesmo que dá um pouco de trabalho na configuração do ambiente =)