Aunque no te guste que te comenten lo del JIT, ese es el motivo:
A la hora de compilar con C, tu piensas en que máquinas vas a soportar, y le dices al compilador que optimice el programa para el mínimo comun denominador. Sin embargo con java no, compila optimizando para el procesador específico que tienes (o esa es la teoría, no he tocado las tripas).
Ahora, que los programas sean más rápidos los de Java que los de C, es una soberana tontería (olvidándonos que hay gente que usa gentoo, y que para ellos java siempre pierde rendimiento):
El estilo de desarrollo de java hace que los programas sean mucho más lentos, ya que se llegan a hacer herencias de herencias... hasta más de diez veces en algunos casos, se copian bloques gigantescos de memoria sólo para usarlos en alguna función, se hacen cientos de llamadas a la pila, y un larguísimo etcetera.
Sin embargo, el estilo de desarrollo en C tiene en principio más cuidado con esas cosas (Por ejemplo, a la hora de pasar como parámetro una cadena/estructura, se pasa sólo un puntero, y no se anda duplicando las variables como hace java o C++).
Si se programa en Java al mismo estilo que se hace C, es probable que en muchas plataformas java tenga más rendimiento. Ahora si alguien programa en Java como se hace en C, o tiene unas necesidades muy concretas, o tiene muchas ganas de perder el tiempo.
Re:Sobre Java lento en programas de escritorio
(Puntos:2, Interesante)( http://www.septeto.com/ | Última bitácora: Sábado, 01 Octubre de 2005, 13:34h )
A la hora de compilar con C, tu piensas en que máquinas vas a soportar, y le dices al compilador que optimice el programa para el mínimo comun denominador. Sin embargo con java no, compila optimizando para el procesador específico que tienes (o esa es la teoría, no he tocado las tripas).
Ahora, que los programas sean más rápidos los de Java que los de C, es una soberana tontería (olvidándonos que hay gente que usa gentoo, y que para ellos java siempre pierde rendimiento):
El estilo de desarrollo de java hace que los programas sean mucho más lentos, ya que se llegan a hacer herencias de herencias... hasta más de diez veces en algunos casos, se copian bloques gigantescos de memoria sólo para usarlos en alguna función, se hacen cientos de llamadas a la pila, y un larguísimo etcetera.
Sin embargo, el estilo de desarrollo en C tiene en principio más cuidado con esas cosas (Por ejemplo, a la hora de pasar como parámetro una cadena/estructura, se pasa sólo un puntero, y no se anda duplicando las variables como hace java o C++).
Si se programa en Java al mismo estilo que se hace C, es probable que en muchas plataformas java tenga más rendimiento. Ahora si alguien programa en Java como se hace en C, o tiene unas necesidades muy concretas, o tiene muchas ganas de perder el tiempo.
Re:Sobre Java lento en programas de escritorio
(Puntos:2)