Onde Java é mais indicado que .Net e vice-versa?

[quote=juliocbq]o profissional apegado em tecnologia só perde no mercado.
[/quote]

Disse tudo.

Assino em baixo.

dando meu pitaco…

se for pra mecher com hardware, é verdade, .net me parece ter uma api mais simples e funcional no que se refere a isso. Outro ponto também é que o silverlight me parece ser mais maduro do que JavaFx por exemplo… eu nem sei o que pensar do flex, tem gente que fala bem, tem gente que fala mal… apesar de q o silverlight me parece estar fazendo bastante barulho (nesse tipo de tecnologia eunão conheço, não da pra eu fazer comparações mais precisas do que isso)

em contrapartida de um modo geral java tem mais versatilidade, especialmente pra coisas grandes… de um modo geral eu considero a api do java mais bem projetada… tem coisas que não gosto na api do .net, por exemplo o HashTable que, assim como no Java não pode ter chaves repetidas mas, se vc tenta adiciona um valor com chave repetida ao invéz dele não adicionar (e retornar um boolean avisando se inseriu ou não), ou substituir o valor existente daquela chave, sei la, ele lança uma exceção… a api do java tb tem seus defeitos e ja vi tópico de gente que conhece muuuito mais do que eu falando desses defeitos…

de um modo geral ambas as linguagens/plataformas tem pontos fortes e fracos onde o que define qual é melhor normalmente é qual que os programadores tem mais familiaridade… com qual eles se viram melhor…

minha opinião

pra mim, tanto faz, se me pedirem um projeto, em qualquer linguagem eu me viro. Mas escolho a que resolve o problema, e metraz mais comodidade.

Em termos de facilidade e produtividade o .Net é imbatível. :wink:

Discordo de vc.

Eu sou muito mais produtivo usando Java ou Ruby que .NET ou PHP.
Me viro em qualquer uma dessas linguagens, mas não sei produzir metade do que sei em java em .NET (isso que eu sei pouco de Java).

Mas ai eu acredito q é de cada um. Muita gente se adapta muito melhor ao .NET, eu trabalhei um mês com .NET garrei raiva ehhehehehe.

Vai de cada um.
A melhor ferramenta é a que vc se sente melhor em trabalhar.

[]'s

Lembre-se que produtividade não é apenas medido em relação a quanto tempo você leva para construir uma funcionalidade, mas também a sua manutenção, mudanças e etc…

verdade… por isso usei a palavra MUITAS e não TODAS pra dizer o que a ferramenta pode fazer no arrastar soltar… usei quase isso e gostei pra caramba…

Falows ;)[/quote]

Como que fica o código depois de vários desses arrastar e soltar?

O coitado que fizer a manutenção vai te xingar?

verdade… por isso usei a palavra MUITAS e não TODAS pra dizer o que a ferramenta pode fazer no arrastar soltar… usei quase isso e gostei pra caramba…

Falows ;)[/quote]

Como que fica o código depois de vários desses arrastar e soltar?

O coitado que fizer a manutenção vai te xingar?[/quote]

Geralmente código auto-gerado não é muito bonito…

verdade… por isso usei a palavra MUITAS e não TODAS pra dizer o que a ferramenta pode fazer no arrastar soltar… usei quase isso e gostei pra caramba…

Falows ;)[/quote]

Como que fica o código depois de vários desses arrastar e soltar?

O coitado que fizer a manutenção vai te xingar?[/quote]

Não vou entrar na questão agora, acho que o tópico levou a uma discussão sadia e legal… mas se vc ler, verá que não falei bem desse arrastar e soltar e nem muito menos disse que uso apenas isso em .NET, é só seguir a Thread do tópico… mas blz…

Falows :wink:

[quote=juliocbq]o profissional apegado em tecnologia só perde no mercado.

Sobre C# e c++, dá para se fazer a mesma coisa com java. Só acho que o Gosling pecou no jni. Com c# realmente é bem mais fácil.[/quote]
[/quote]

Ainda bem que com Java é mais difícil. Em qualquer projeto, a arte é dificultar
aquilo que vc não quer que seja usado. Se fosse mais fácil usar JNI,
talvez a tentação de usar código nativo desnecessariamente seria bem
maior, principalmente no início. Essa quebra foi fundamental no início
do Java.

O uso generalizado de máquinas virtuais (JVM ou CLR) é uma grande benção.
Não quero nem imaginar como seria o desenvolvimento de aplicações
hoje se C/C++ continuasse dominante.

Jorge

É mais produtivo quando vc precisa construir softwares multiplataforma que serão executados em servidores.

flws

Que conversa fiada amigo. Você vai desenvolver device drivers com java, c# ou phyton? Cada coisa no seu lugar. O acesso a hardware é muito importante em determinadas situações. O jni criou um empecilho no desenvolvimento de determinadas aplicações com java.

sobre c/c++, dê uma olhada em www.sourceforge.net

[quote=Jorge Diz][quote=juliocbq]o profissional apegado em tecnologia só perde no mercado.

Sobre C# e c++, dá para se fazer a mesma coisa com java. Só acho que o Gosling pecou no jni. Com c# realmente é bem mais fácil.[/quote]

Ainda bem que com Java é mais difícil. Em qualquer projeto, a arte é dificultar
aquilo que vc não quer que seja usado. Se fosse mais fácil usar JNI,
talvez a tentação de usar código nativo desnecessariamente seria bem
maior, principalmente no início. Essa quebra foi fundamental no início
do Java.

O uso generalizado de máquinas virtuais (JVM ou CLR) é uma grande benção.
Não quero nem imaginar como seria o desenvolvimento de aplicações
hoje se C/C++ continuasse dominante.

[/quote]

Eu sei muito bem o que é isso - estou em um grande projeto onde faço algumas coisas em C++. Quando ocorre um bug é um inferno descobrir onde e quando ocorreu - um simples stack trace é quase impossível obter sem espetar um depurador, o que não é viável em produção. E as bibliotecas de uso geral (como o Boost) não são tão disseminadas e debugadas quanto as usadas pelo Java.
Os programas em C# que se desenvolvem aqui usam muitas DLLs que foram desenvolvidas em C++/CLR, mas não foram devidamente otimizadas e conseguem ser mais lentas que um programa em Java equivalente.
O grande problema é que aqui o pessoal tem um pouco (só um pouquinho) de medo de “garbage collection” - só que o GC do .NET é bem mais tosco que o do Java. Não deveriam estar usando Windows, por exemplo, que não garante de forma nenhuma um tempo de resposta para suas aplicações. Um Solaris (ou talvez uma máquina da AzulSystems :stuck_out_tongue: ) seria bem mais adequado para os requisitos de tempos de resposta que são solicitados.

Não podemos generalizar isso, porque todos nós aqui trabalhamos em áreas diferentes. JNI não é questão de performance. Onde eu trabalho desenvolvemos aplicações de segurança. Essas aplicações precisam se comunicar com hardware, então a dificuldade do JNI me atrapalha muito. Tenho usado muito mais c# devido ao tempo que levo em escrever o equivalente a jni.

Vcs já chegaram a dar uma espiadinha em JNA - https://jna.dev.java.net/ ?

[quote=juliocbq]
Que conversa fiada amigo. Você vai desenvolver device drivers com java, c# ou phyton? Cada coisa no seu lugar. O acesso a hardware é muito importante em determinadas situações. O jni criou um empecilho no desenvolvimento de determinadas aplicações com java.

sobre c/c++, dê uma olhada em www.sourceforge.net[/quote]

Não, não vou desenvolver device drivers em Java. Já fiz isso em assembly do 8086 e em C,
há muuuito tempo. E há muito tempo que não preciso fazer isso de novo, graças ao bom Deus.
Prefiro mil vezes uma NullPointerException que uma SegmentationFault. Não tenho saudade
dos 15 anos que passei mexendo com C e C++.

Felizmente, trata-se agora de um nicho, que é uma situação diferente de precisar usar código nativo
na maioria das aplicações, como acontecia até 10 anos atrás. Qual é a proporção de profissionais,
hoje, que necessita escrever em C/C++ ? Mais ou menos a mesma que precisava usar assembly
naquela época …

Se JNI foi um obstáculo à adoção do Java, parafraseando o excelentíssimo sr. presidente,
tratou-se de uma marolinha comparada com o tsunami que tem tomado conta da infraestrutura
das empresas a partir de ~2000.

Concordo que JNI não é a melhor API do mundo. Quando precisei interfacear com código nativo
usei JACE em vez de JNI na unha. Não existia ainda o JNA, que parece ter melhorado a situação.
De qualquer forma, se vc realmente precisa, tem as ferramentas para fazer. Se fosse muito
mais fácil, acho que muitas pessoas teriam misturado código nativo desnecessariamente.

Infelizmente, vc está num nicho onde essa dificuldade dói. Faça de conta que é o
abstêmio da turma que vai dirigir para que os outros possam aproveitar a cervejada.

[]s

Jorge

A proporção dos profissionais que escrevem c ou c++ é enorme. São eles que escrevem sistemas operacionais e a maioria da tecnologia, e apis que vc usa. É só olhar no www.codeproject.com e no www.sourceforge.net.

Se vc não precisa codificar em c ou assembly hoje, e achava ruim, é o seu gosto. Mas é inegável a necessidade delas no dia a dia de certas áreas.

Eu não sinto nenhuma dificuldade de usar assembly, c ou pascal, nem teho nada contra. Eles são necessários para resolver meus problemas.

O JNA é um recurso muito bom que implementaram, mas ainda está longe do pinvoke do c#, fora unsafe.

Concordo em Partes. Acho que o forte não é a linguagem e sim a IDE. O Visual Studio é muito produtivo.

Mas em termos de Linguagem, o Java é a Coca-Cola e o C# é a Pepsi.

[quote=Bruno_Leonardo]Senhores,

Para a web, qual das duas plataformas é mais fácil, mais produtiva, mais robusta, mais escalável, possui mais mão de obra, possui mais mercado, etc.

Enfim, sem querer criar qualquer polêmica, gostaria de saber onde o Java é mais indicado do que o .Net e onde o .Net é mais indicado que o Java.

Att.[/quote]

O que é “marana fa” do seu avatar?

Olha sou trabalho com .net “C#” como professor e como desenvolvedor “java” na empresa, vai depender do que você vai quer fazer, particularmente eu gosto mais do java por ser uma ferramente free…e tudo mais, mas não quer dizer que ele seja nem melhor nem pior, vai depender do seu projeto, do dominio da linguagem etc…

t+