El día 4 de julio de 2008 14:58, Leandro Lucarella <[EMAIL PROTECTED]> escribió:
> Lautaro Cozzani, el 4 de julio a las 12:21 me escribiste: > > 2008/7/4 Fernando Requena <[EMAIL PROTECTED]>: > > > > > >> sabia que alguien se iba a poner a buscar :S... jeje... ahora falta un > > >> micro como la gente que interprete bytecode... por lo menos para que > > >> es esfuerzo de construir ese SO valga la pena > > >> > > > > > > ya existen > > > > lease que puse "como la gente" > > Yo igual lo que nunca entendí de la gente de Java es por qué tomar el > camino inverso: > > 1) Sacar de la galera código de máquina > 2) Construir por software una máquina virtual que interprete ese código > 3) Darse cuenta que apesta de lento > 4) Hacer todo tipo de artimañas para optimizarlo (por ejemplo JIT) > 5) Tratar de diseñar hardware que interprete directamente ese código de > máquina. > > Digo yo, si el bytecode de Java hubiera sido opcodes de x86 por ejemplo (o > de la arquitectura que más les pinte, pero de la cual *ya* exista > hardware, digo x86 por ser probablemente la más popular), no sería ya todo > lo rápido que tendría que haber sido en un primer momento? No se hubieran > ahorrado horas y horas hombre en construcción de máquinas virtuales? No > tendríamos ahora al menos un emulador de x86 (o la arquitectura *real* que > hubieran elegido) decente para las demás arquitecturas que pueda usarse > tanto para correr programas hecho en Java como en cualquier otro lenguaje > que compile para x86/whatever? > Supongo que es asi porque originalmente, Java era una maquina virtual para dispositivos, y no para desarrollar aplicaciones. Si bien el mercado de computadoras personales es bastante homogeneo (PC, Mac y alguna cosa mas), el de los dispositivos es mucho mas variado. Java nacio con la idea de ofrecer una maquina virtual comun a muchos tipos de dispositivos distintos, y en ese contexto, Java es una buena idea. Pero en computadoras personales me parece que funciona mucho mejor un interprete o traductor directo, como python o perl. Java es en definitiva un emulador, de una maquina hipotetica, pero un emulador al fin. Y para que un emulador tenga un desempeño razonable, tiene que emular un hardware muuucho mas simple que aquel sobre el cual esta corriendo.
_______________________________________________ Lista de correo Programacion. [email protected] http://listas.fi.uba.ar/mailman/listinfo/programacion
