soh um parenteses em nossa salutar discussao...
eu estava lendo em um forum uma comparacao de C++ com java. um programa praticamente identico, executado com algumas milhoes de interacoes. inicialmente o mesmo programa rodou 3x mais rapido em java que em C++.
o programador entao deu uma boa analisada e descobriu que o java estava paralelizando a execucao e usando dois cores enquanto que o programa em C++ usava apenas um. o resto da diferenca se deu em funcao do java pre-alocar uma imensa quantidade de memoria logo na inicializacao e o C++ ter que requisitar periodicamente para o sistema operacional.
por fim, aplicando as mesmas otimizacoes, chegou-se ao resultado esperado, onde a JVM e o programa em C++ estavam praticamente usando algoritmos similares (a maioria das JVMs provavelmente eh escrita em C++, entao a teoria do testador era de que deveriam nivelar na mesma performance se usasse as mesmas tecnicas em C++).
bom, ateh ae nenhuma novidade, mas lancou-se o desafio se seria possivel melhorar a performance. e realmente, surgiram inumeras ideias que melhoraram consideravelmente a performance do programa escrito em C++, mas as mesmas tecnicas nao podiam ser aplicadas no programa em java pq os algoritmos chave estavam presos dentro da JVM e de qq forma eram especificos para acelerar aquele problema em particular, enquanto os algoritmos da JVM sao bons, mas genericos.
bom, o teste no fim das contas comecou mostrando java 3x mais veloz e terminou com java perdendo de lavada... a moral da historia para os caras do C++ eh que programadores java nao sabem programar em C++; a moral da historia para os caras do java eh que programadores C++ nao sabem perder.
voltando ao assunto, chipselect, eu nao entendo em que ponto vc quer chegar ao comparar a padronizacao de java ou C entre sistemas diferentes. me parece obvio e ululante que se uma plataforma nao possui compilador C, dificilmente vc vai conseguir portar uma JVM para ela. vc poderia ateh argumentar que vai escrever uma JVM em assembler para o PIC, mas francamente, ela nao vai ter a mesma qualidade de uma boa JVM escrita em C++. convenhamos, essa historia de portabilidade no java eh totalmente balela. o que existe eh uma portabilidade entre sistemas de alto nivel que estao nivelados pq alguem se preocupou em escrever codigo C++ que compatibiliza estas plataformas, isso jah considerando o proprio fato destas plataformas disporem de compilador C++. entao, nesse aspecto, java eh tao portatil quanto o apache.
sobre o sgbd, eu posso fazer uma comparacao pratica usando um exemplo que outro colega anti-java citou durante o intervalo do cafeh: ele perdeu um bom tempo instalando um apache, um tomcat, uma jvm e configurando uma parafernalha de coisas para uma aplicacao java rodar via web falando com um banco de dados. infelizmente, tudo isso consumia bastante memoria e, quando se abriam umas 10 conexoes o sistema ficava carregado a tal ponto que a maquina comecava a demorar minutos para abrir uma pagina.
ok, era soh adicionar mais memoria, mas convenhamos que ele tinha motivo para indignacao: na mesma maquina, rodando um sistema similar escrito em php, ele conseguia 250 conexoes e o tempo de resposta continuava normal. mas php eh meio lentinho, se usasse C, provavelmente conseguiria milhares de conexoes simultaneas.
bom, sobrecarga eh um recurso meramente estetico, mas nao vou discutir sobre OOP em C com vc, existem milhares de referencias sobre isso na internet. eu francamente acho que vc deveria abrir sua mente e tentar aceitar mais o mundo a sua volta, sei lah, dah uma corrida amanha cedinho no parque para tirar todo esse odio do coracao!
