2010-09-27 13 views
6

Bueno, estoy aprendiendo Java ahora y tengo curiosidad por saber si esto arrojará un aumento notable en el rendimiento. Y si muchos desarrolladores siguen una metodología similar para la programación de Windows (C++ back end y Java UI) u otros lenguajes se usan como Python?¿Por qué Firefox está escrito en C++ y en la interfaz de usuario de JavaScript?

* esto: C++ back end y otros lenguajes para la interfaz de usuario en lugar de utilizar el otro idioma para escribir todo el programa.

+24

Hay una tremenda diferencia entre ** Java ** y ** Javascript ** - son ** completamente ** idiomas diferentes. – Pointy

+0

¿Qué quiere decir con "¿producirá esto un aumento notable en el rendimiento?". ¿Quiere decir que Java será un aumento de rendimiento sobre X otro idioma en su uso específico o qué? Es posible que desee ser un poco más específico en su pregunta. –

+3

Supongo que hay un pequeño problema de idioma, pero estás haciendo tres preguntas separadas, ninguna de las cuales es una idea completa. (Cuando dices "¿esto rendirá un notable ...", ¿qué es "esto"?) –

Respuesta

23

En primer lugar, Java y JavaScript son idiomas completamente diferentes y no relacionados. Firefox usa JavaScript; no usa Java en absoluto.

En segundo lugar, esto no se hizo por motivos de rendimiento, sino para simplificar la escritura de complementos y extensiones que se pueden usar con Firefox en cualquier plataforma. Se debe compilar el código C++, y una vez compilado solo se ejecutará en la plataforma para la que se compiló. JavaScript es un lenguaje interpretado que se ejecuta en un intérprete incrustado en el navegador, por lo que las mismas extensiones generalmente se pueden ejecutar en MacOS, Linux o Windows (o cualquier otra cosa en la que se ejecute Firefox).

Y sí, hay otros programas que usan lenguajes de scripting para este tipo de propósito (para permitir una fácil personalización y extensión). Por ejemplo, la interfaz de usuario y la lógica de juego de Civilization IV están escritas completamente con Python y XML por este motivo, mientras que el código de gráficos de alto rendimiento aún está en C++.

+4

Civ 4 era notorio por correr muy despacio y comer pedazos de memoria. – Crashworks

+4

Bueno, ¿eso no respalda el hecho de que * no * se hizo por razones de rendimiento? ;) –

+0

¿Entonces el uso de Javascript solo para una fácil personalización? ¿Qué ocurre si escribo un programa de Windows que no requiere muchos complementos, como un lector de PDF, por ejemplo, ¿es mejor utilizar C++ para todo el programa o consultar otras opciones para la interfaz de usuario? – Ahmed

4

Esta pregunta realmente no tiene ningún sentido a menos que realmente esté preguntando si debe implementar sus aplicaciones como aplicaciones XUL. Javascript por sí solo no le da nada con el que crear una interfaz de usuario. Una gran cantidad del código en Firefox es código C++ para proporcionar los componentes de Javascript con un marco de interfaz de usuario.

+0

+1 Este es un punto importante que eché de menos. El JavaScript en Firefox (y Python en Civ IV, etc.) no * crea * la interfaz de usuario, permite a terceros * personalizar * y * modificar * la interfaz de usuario. –

+1

Soy un principiante. ¡No se supone que sepa todo esto o no lo hubiera preguntado en primer lugar! – Ahmed

+0

@Ahmed No te culpo por no saber, simplemente te estoy diciendo la verdad. Javascript simplemente no es una forma de construir una interfaz de usuario para * cualquier cosa * fuera de un navegador, o alguna otra cosa (como Firefox) que * proporcione * un marco de interfaz de usuario. Además, probablemente deberías saber para qué son realmente los downvotes. – Pointy

Cuestiones relacionadas