Java X Dot Net

[quote=ViniGodoy]
Engraçado, eu nunca tive problemas com o Java (exceto no caso da javax.com, que sempre foi uma extensão) e meu histórico de migração com ferramentas da microsoft sempre foi cheio de dores de cabeças e problemas graves. Não posso falar do .net, pq ainda não tive a oportunidade de usar.[/quote]

Eu nunca tive grandes problemas com Java, a maioria se resumia a bugs diferentes na implementações de zip, sockets e file I/O, muito em especial com nio. Fora os problemas que não tem como ser evitados como paths com case errado ou exclusivo de um SO. Nunca tive que migrar aplicações com código JNI, felizmente.

[quote=louds]…
[1]Veja a enorme briga que deu entre o Apache Harmony e a Sun por conta de todas restrições de uso que existem sobre a JSE.

[/quote]

Já tinha ouvido falar dessa briga entre ASF e Sun, mas nunca havia lido a carta da ASF para a Sun:
http://www.apache.org/jcp/sunopenletter.html

Se for isso mesmo (o que não duvido), o tão belo “Java é apenas uma especificação”, é uma tremenda de uma mentira.

Decepcionante.

"

Qual Java? Quantas plataformas o JRE 5 ou 6 está disponível? Mesmo incluindo todos vendors que não seja a Sun, não tem muitas não. JME e JSE são coisa completamente diferentes, argumentar que Java está disponível em tudo quanto é canto por conta disso é inócuo.

"

Eu te perguntei de implementações do Java 5 ou 6. Não vejo muita utilidade em discutir sobre o fato de em 99 terem portado a Japhar (que implementava o Java 1.1 parcialmente) para Amiga. Essa sua lista só fala de VMs do começo do século, quando muito. Nenhuma menciona o java 1.4 se quer. Vamos lá, quantos SOs/arquitetura rodam Java 5 ou 6.

Vou te dar uma dica, não roda nem em dispositivos embarcados ou video games, não existe nenhuma implementação do JSE que rode em ARM. Falo de implementações avançadas o suficiente para que seja possível usar em um projeto real.

Quantos % da API do Java você usa? Somando tudo aquilo que os desenvolvedores desse fórum já escreveram em Java, quantos % da API vc acha que foi usado? 5, 10, 20, 50, 99%?

Quantos aqui perdem tempo com aquelas APIs obscuras e inúteis da JSE? Ainda assim, se alguém implementar uma JVM faz sentido ela ser taxada de inútil por justamente não implementar muita das coisas que ninguém usa?

"

A briga era em Java vs .Net, agora é Java vs Mono :stuck_out_tongue:

Eu também discordo de algumas opniões e afirmações do Louds, mas também foi meter o Mono aqui no meio rivalizando com Java.

Bem na minha opinião tanto Java como Mono são plataformas importatissimas, a grande diferença entre as duas é a maturidade, q o Mono aos poucos vai ganhando, e assim ganhando confiança e mais apostas.

O IKVM é um excelente projeto, e muita coisa feita em Java já da para rodar com .Net na boa, até o H2DataBase um dia na lista de discussão foi lá um maluco dar boas noticias de q estava usando o H2DataBase com C#, o IKVM ficando realmente muito bom, e se a performance for tal e qual a da JVM, ou superior, como q vai ser?

Independente disto acredito q hoje em dia ainda Java é preferência, e vai continuar sendo, e Java sendo portado para .Net maravilha, mais portas se abrindo, ou seja trabalhando com Java nem .Net é uma barreira, por toda esta diversidade do Java, ta mais do que provado que vale a pena continuar focando em Java. É a minha opinião.

[quote=marcosalex][quote=louds]
Eu te perguntei de implementações do Java 5 ou 6. Não vejo muita utilidade em discutir sobre o fato de em 99 terem portado a Japhar (que implementava o Java 1.1 parcialmente) para Amiga. Essa sua lista só fala de VMs do começo do século, quando muito. Nenhuma menciona o java 1.4 se quer. Vamos lá, quantos SOs/arquitetura rodam Java 5 ou 6.
[/quote]

Tanto a 5 ou 6 roda em todos os Unix e BSD. PS2 roda a JVM 1.5 e talvez até a 6, já que não mudou tanto assim. O link que postei é mais antigo, você pelo menos procurou outros, ou continua só falando?
[/quote]

Vamos aos fatos:

:arrow: A sony anunciou que ia portar a JVM pro PS2 e isso nunca aconteceu, nunca chegou a existir uma JVM disponível para o console que não fosse experimental.
:arrow: Concordo contigo que Java 5, ou 6, está disponível para mais UNIX comerciais que o mono.
:arrow: Não existem versões da JSE para dispositivos portateis - pode procurar o quanto quiser, a Sun simplesmente nunca quis deixar
:arrow: Java 5 está longe de estar disponível em todos Unix. Consulta quando foi lançada a última versão para Tru64 ou OpenVMX por exemplo. Nem me fale do port para VAX.

Java em muitas plataformas implementa uma coisa completamente diferente da JSE, ou então versões muito velhas. Não tem como dizer, por exemplo, que um celular que tem JME é um subset da JSE, é um treco muito diferente.
Outra coisa, não existem implementações parciais da JSE pois a Sun não permite usar o nome Java se não passar pelo TCK da plataforma.

Tem toneladas de APIs na JSE e no .NET que deveriam ser bibliotecas a parte, que não fazer o menor sentido serem distribuidas junto. Tanto por aumentar o trabalho de quem porta, o tamanho da distribuição e engessar APIs que não estão sólidas ainda.

Maioria das APIs exotéricas do JSE foram inclusas aquém do JCP, seja da época que a Sun tinha mando completo sobre a JSR do Java (circa 1.4 e 1.4.2) ou nos casos recentes dela entubar coisas por conta da sua agenda. Vide, por exemplo, logging, eu ainda tou para conhecer um projeto que use java.util.logging em vez de log4j. Aquilo que tem na JSE é nitidamente um produto inferior.

[quote=marcosalex]
Como sugestão, é interessante acompanhar o JCP para ficar a par de como funciona a implementação de novos recursos na máquina virtual pra não arriscar dizer alguma coisa sem fundamento no forum.[/quote]

Eu acompanho o JCP muito mais de perto que você imagina :wink:

Então concordas que o Java 5 ou 6 esta mais disponível para Unix do q o Mono? Então logo no mundo dos servidores Unix, Java continua na frente, e depois ainda diz q Java esta ultrapassado em Tru64, OpenVMX e VAX!? E o Mono nestes ai como q ta? No site do Mono não vejo mais opções de downloads oficiais q do Java.

É óbvio q manter suporte oficial a tudo isto é impraticável, a faze de testes só em Unix não ia ter fim, e quem usa isto ainda? São tantos, mas tantos q vai afetar as receitas? E vai impor uma barreira para a divulgação do meu produto? Claro q não! Mais uma vez só querendo cuspir pra cima do Java.

Mono é bom, mas se quer que o teu produto abranja mais plataformas, não venha com conversa, Java ainda é a melhor opção. Mono um dia quem sabe iguale ou supere o Java, quem sabe, futuro longincuo.

Concordo em partes e discordo, concordo q tem coisa q não presta pra um ou pra outro, q esta ultrapassado e talz, mas isto gerar problema pra quem porta?! Logging, Derby, etc… são feitos 100% em Java, logo isto não tem q ser portado, basta ter a JVM bem portada q automaticamente isto vai funcionar, ou nãO???

Realmente o Logging e o Derby são fracos, e eu também não uso nenhum dos dois, é o log4j e o H2DataBase, mas pow, quanta gente esta usando o Derby por causa disto, e quantos estão insatisfeitos? A maioria esta usando, para a maioria dos casos serve perfeitamente, o Logging a mesma coisa, e o mesmo para o Rhino, muita gente vai preferir usar outras APIs, mas muitos vão preferir usar estas q já estão prontinhas para usar, é uma opção a mais! E só por q o Mono não tras um Logging, um Derby e um Rhino da vida então o Java é ruim por que dá mais opções ao programador?!

Quem ve vc falando até deve pensar q “portar” o .Net para Linux/Unix é bem mais fácil… e depois portar o Mono para as distribuições Linux/Unix, deve ser molezinha deve… só não entendo por que ainda não esta em mais plataformas q o Java…

Realidade no mundo Mono, Microsoft lança uma novidade na especificação do C#, lança uma nova versão do .Net, agora quem usa Mono senta e espera até ter isto implementado para poder usar no Linux/Unix, se eu produzo software .Net em ambiente Linux/Unix, como vou conseguir competir com os que produzem em ambiente Windows? Vou estar sempre um passo atrás…

Totally crazy!

"