[quote=caloro]Bom, comecei a desenvolver em java a pouco tempo, e paticularmente estou gostando muito, ma so problema é q desenvolvo para desktop, e java tem o problema de ser um poico lento para desktop, como todos sabem, dae ouvi falar q C# é bem rapido para desktop, mais fico meio assim de largar mao do java pra aprender C#, vou desenvolver um projeto desktop, e ele precisa ser bem rapido nos processamentos, e deve rodar em uma maquina não muuito boa…media…Li uns tópicos akii no GUJ, mais ainda estou indeciso, gostaria da opnião de v6…
Parto pro C#, ou constinuo firme e forte no Java?[/quote]
como em tudo na vida depende de quanto tempo vc tem para fazer o sistema, quanto complexo ele é, e qual é a sua preocupação com a manutenção. O sistema usa banco de dados ? usa gráficos 3D ? Usa um servidor de aplicação centrar ou vai direto no banco ?
Se o sistema é simples o suficiente para vc poder passar algums tempos (3 meses) mexendo com Swing, vá de java.
Se vc tem pressa vá de C#. O RAD do .NET vai ajudar a fazer a aplicação rápido, mas não necessariamente bem.
Java para Desktop executa tão ou mais depressa que .NET o ponto é mais complexo que “arrastar e soltar”. Ajudar vc ter boas noções e prática de OO e conhecimento de padrões, em especial o Observer o Command. Em .NET o tratamento de eventos é diferente e a meu ver mais complexo que o do java, mas o RAD tem a suas vantagens.
Se vc quer aprender a mexer com desktop para o futuro, vá de java. Aprender Swing é uma boa aposta a qualquer momento da carreira do programador java porque os seus mecanismos são tb a base de muitas outras tecnologias.
O .NET tem a desvantagem de não ser retrocompativel o que significa que provavelmente vc via jogar fora o seu codigo quando sair o proximo .NET Framework. O Java não tem esse problema. Portanto é necessário saber quando tempo vc quer que a aplicação dure. Para sempre = java.
Agora um detalhe, o modelo de implementação do Swing é single-threaded. Ou seja, todos os eventos e desenho de tela acontecem na mesma thrread. O programador inexperiente não sabe disso ou não entende o que isso significa e coloca codigos de processamento longo (loops ) dentro de tratadores de eventos do Swing. Isso faz a thread do swing ficar sobrecarregada e o sistema lento. Não é o Swing que é lento, é o codigo que os programadores incluem nele. É preciso ter esta noção para programar corretamente em swing, sempre abrindo novas threads quando ha trabalho demorado para fazer. Sempre apresentando uma barra de progresso, essas coisas…
Swing não é lerdo, lerdo é quem programa Swing sem threads.