Estamos n fazendo uma escolha entre linguagens para desenvolver um sistema de grande porte. Por enquanto estamos decididos pelo java, mas reparei que algumas coisas em java ficam extremamente lentas… isso me assustou um pouco. Queria a opinião de alguém sobre a linguagem java. c++ e .net. Qual a vantagem de cada uma… isso vai desde a performance de cada linguagem, portabilidade, e principalmente o mercado, pois como somos programadores queremos escolher a linguagem que irá ter mais aceitação, necessitará mais empregos, maiores salários, porque junto com essa decisão vai também o investimento em nossas carreiras. Espero a opinião dos proofissionais da área.
Onde mais especificamente vc achou ela lenta?? com que tipo de aplicacao a impressao nao foi boa??
Uma enorme diferenca entre Java e .NET: Java eh totalmente multplataforma. .NET nao, roda somente em Windows.
Java eh uma tecnologia - veja, tecnologia, e nao apenas uma simples linguagem - consolidada no mercado, com o apoio da Oracle, IBM, Nokia, Apple, Borland e outras duzias de dezenas de empresas reconhecidas mundialmente. Com Java vc tem liberdade de escolha entre fornecedores de tecnologia e solucoes. Usando .NET, vc depende da Microsoft para tudo.
Depois, digamos que .NET ( ou C, ou Cobol, ou XYZ ) paguem um pouco mais… vc iria migrar apenas pelo fator remuneracao?? Eh importante pensar nisso, pois o pessoal que ficar pulando de tecnologia em tecnologia, soh pq esta na moda, com certeza nao serao os melhores profissionais. Especializacao eh muito importante.
Veja, Java em ambiente desktop ( aplicacacoes graficas, com Swing ), realmente necessitam de mais memoria para rodar. Eh um preco a ser pago por ser multiplataforma. Java nao eh 20x mais lento que C ou C++, como algumas pessoas ( que vivem de passado ) afirmam… no passado, nas primeirsa versoes do Java, realmente era muito mais lento, mas com o tempo a linguagem amadureceu muito e atualmente esta muito robusta.
Para apliacoes Web, sistemas utilizando tecnologia Java ( JSP, Servlet etc ) sao muito rapidos, muito mesmo.
Agora, como em qualquer outra linguagem, nao adianta colocar programadores sem conhecimento para desenvolver, pois ai nao tem jeito, o codigo - e o sistema - ficam pessimos.
Uma coisa eh muito importante vc se perguntar: “Em qual area de atuacao vc deseja estar?”. Se vc deseja ter sistemas que rodem apenas e unicamente em Windows, nao ha muita vantagem em usar Java, seria melhor usar Delphi, C++ etc… Mas hoje em dia, quem deseja estar preso a uma unica plataforma?
Apenas minha opiniao.
Rafael
Muito obrigado, muito bem formulada sua resposta.
Sinceramente eu esta,os praticamente decididos por Java, mas essas coisas que escutei sobre performance que me fez pensar. Eu ouvi dizer que dá para fazer o java ficar quase com a mesma velocidade de c++ utilizando compiladores que geram linguagem de máquina. Os programas que vi que achei lentos foram o Poseidon (para UML), o InstallAnywhere (esse eu achei muito pesado para ser meio simples), e alguns editores da própria linguagem como forte, eclipse, netbeans…
Aguardo a opinião de outras pessoas do fórum…
Bom, em relacao a velocidade de execucao dos programas, depende em quais maquinas voce rodou eles. O Eclipse eh uma das IDE’s profissionais mais leves que existe, pois ele usa recursos nativos de cada SO ( Por exemplo, no Windows ele usa as chamadas da API do proprio SO para fazer o desenho da interface grafica, em Linux ele usa as bibliotecas do GTK2 ).
Programas totalmente em Java ( poseidom, jbuilder, forte, sun one studio ) tendem a serem mais pesados pelos fatos que comentei antes, mas lembre-se que sao programas bem grandes e completos. Ate o Delphi nao roda 100% em uma maquina meio lenta.
O Forte/Sun One Studio sao especialmente pesados. Tenho um P4 1.5ghz e da para sentir o peso dele. Mas eh um progrma extremamente complexo, com muitos recursos.
No trabalho uso um AMD 450mhz com 196 de RAM, e rodo o Eclipse e Tomcat nele pra programar Servlelts. Logico, nao fica uma ferrari, mas tmb nao eh lento a ponto de ser insuportavel. Esta em um nivel aceitavel.
Os compiladores que geram codigo nativo ( JET para windows - comercial, se nao me engano -, e GCC-Java para Unix ), ajudam em algumas partes, mas quebram a portabilidade do Java.
O que eh utilizado hoje em dia eh o chamado “HotSpot”, tambem conhecido como “Compiladores JIT” ( Just In Time ). Tais compiladores ( todos os profissionais - javac, jikes etc ) implementam isso, que nada mais que a otimizacao em tempo de execucao de certas partes do programa. Por exemplo, se a JVM notar que tem uma janela que eh aberta varias vezes, ou um laco de execucao que eh muito executaco, ela ira compilar para codigo nativo tais partes do programa, deixando mais rapido a execucao quando for requisitado de novo tal parte do programa.
Os compiladores JIT agem em tempo de execucao, ou seja, quando voce roda o programa. Portanto, geralmente para iniciar a primeira vez demora , digamos, 20 segundos, mas na segunda ja leve 15, por exemplo. Isso vale para oturas partes do programa tmb.
Rafael
Obrigado, entendi.
Uma coisa que eu acabei esquecendo, é a velocidade para acesso a banco de dados, porque com iremos utilizar muitas chamadas, e isso não poderia ser muito lento. Eu sei que depende do banco de dados ( provavelmente Caché), mas o JDBC é um bom driver para acesso a dados?
O JDBC eh o unico para Java. Tudo eh feito via ele. Note que o JDBC nao eh o driver, mas sim a especificacao de regras que os drivers devem seguir. Portando, se vc usar Caché, precisa pegar o driver especifico pra ele, que por sua vez implementa o JDBC. Se o driver que vc usar for mal escrito nao tem jeito, vai ser lento ( mas ate ai vc pode escrever o seu proprio driver ).
Mas no geral, os drivers para esses banco de dados mais famosos sao feitos pelos vendedores mesmo, portando sao muito bons.
Rafael
Pessoal !! ja que estamos falando em comparar linguagens porque ninguem nunca falou em PHP !!! so falam em Delphi .net etc e tal …
Estou dizendo isso porque fiz muito programas em PHP e agora estou aprendendo JSP Servlets e java em geral .
So para lembrar a todos o site guj é feito em PHP o PortalJava tb é feito em PHP . Existe algum projeto para migra-los para java ?
Para quem não conhece , Php é uma linguagem interpretada assim como asp , perl e outras por ai sua sintaxe é muito parecida com o C . algumas carcterísticas: nao é necessário declarar as variáveis por exemplo se uma variavel é inteiro ou string , o php a define conforme ela é utilizada .
Outra vantagem ou desjantagem : esta se tornando muito popular devido a sua facilidade de programar , ate o pessoal que faz publicidade e propaganda esta aprendendo no curso .É possivel criar objetos classes etc… não é tão robusta com o java e C++ , mas da quebrar o galho !!!
Diria que é ideal para pequenas aplicações !!!
O principal problema é que quando o site cresce muito é necessário migra-lo para uma linguagem com mais recursos que trabalhe em várias camadas etc …
Sem querer ser chato !!!
Volto a perguntar . Por que o site do guj no é migrado para java ?
Um abraço a todos !!!
Renato
O GUJ eh feito em Java, apenas o forum que eh em PHP.
PHP eh uma otima linguagem, e nao somente para aplicacoes pequenas. PHP eh bastante robusto, e tem suporte a muita coisa, interagindo ate com Java.
O lance que se compara Delphi/.NET com Java eh na maior parte das vezes sobre aplicacoes graficas, e nao sistemas para Web.
Rafael
O PortalJava realmente é em PHP, mas existe planos para migrá-lo para Java sim.
Temos o projeto JNuke no sourceforge com a participação não apenas de integrantes do Portal Java como também de outros brasileiros e até estrangeiros, para ter um portal em Java compatível com o banco de dados do PHPNuke.
O endereço do projeto é: http://jnuke.sourceforge.net
Pessoal não tenho nada contra ao PHP muito pelo contrário , passei alguns anos trabalhando com ele e acho uma linguagem muito boa . O problema e que muitas vezes ele é utilizado por quem nao tenha a mínima noção de engenharia de software , fazem um programa com 1500 linhas e que na hora de migra-lo para outra linguagem vc fica pensando se não é melhor começar tudo do zero !!!
Um abraço a todos !!!
Renato
Mas isso acontece com qualquer linguagem. As empresas colocam “programadores” que nao tem a minima nocao do que estao fazendo, e dai soh da droga.
Agora, nao existe coisa pior que pegar um sistema feito em ASP por pessoas que pensam que o bill gates inventou a Internet, e portar ( ou pior, dar manutencao ) para outra linguagem. Argh, chega a dar pesadelos.
Rafael