2010-09-27 17 views
6

Bene ... sto imparando Java ora e sono curioso di sapere che questo produrrà un aumento notevole delle prestazioni? E se molti sviluppatori stanno seguendo una metodologia simile per la programmazione Windows (back end C++ e interfaccia utente Java) o altri linguaggi vengono utilizzati come python?Perché firefox è scritto in C++ e nell'interfaccia utente javascript?

* questo: back end C++ e altre lingue per l'interfaccia utente invece di utilizzare l'altra lingua per scrivere l'intero programma.

+24

C'è un'enorme differenza tra ** Java ** e ** Javascript ** - sono ** completamente ** lingue diverse. – Pointy

+0

Cosa intendi con "questo produrrà un aumento notevole delle prestazioni?". Vuoi dire che Java sarà un aumento delle prestazioni rispetto ad X altre lingue nel tuo uso specifico o cosa? Potresti voler essere un po 'più specifico nella tua domanda. –

+3

Suppongo che ci sia un po 'di problemi linguistici, ma tu stai facendo tre domande separate, nessuna delle quali è un pensiero completo. (Quando dici "questo produrrà un notevole ...", che cos'è "questo"?) –

risposta

23

In primo luogo, Java e JavaScript sono lingue completamente diverse e non correlate. Firefox utilizza JavaScript; non usa affatto Java.

In secondo luogo, questo non è stato fatto per motivi di prestazioni, è stato fatto per semplificare la scrittura di componenti aggiuntivi ed estensioni che possono essere utilizzati con Firefox su qualsiasi piattaforma. Il codice C++ deve essere compilato e una volta compilato verrà eseguito solo sulla piattaforma per cui è stato compilato. JavaScript è un linguaggio interpretato che viene eseguito in un interprete incorporato nel browser e pertanto le stesse estensioni possono generalmente essere eseguite su MacOS, Linux o Windows (o qualsiasi altra cosa su cui viene eseguito Firefox).

E sì, ci sono altri programmi che usano linguaggi di scripting per questo tipo di scopo (per consentire una facile personalizzazione ed estensione). Ad esempio, l'interfaccia utente di Civilization IV e la logica di gioco sono scritte interamente con Python e XML per questo motivo, mentre il codice grafico ad alte prestazioni è ancora in C++.

+4

Civ 4 era famoso per la sua esecuzione molto lenta e per il consumo eccessivo di memoria. – Crashworks

+4

Beh, questo non significa semplicemente che * non * è stato fatto per motivi di prestazioni? ;) –

+0

Quindi l'uso di Javascript solo per una facile personalizzazione? Cosa succede se sto scrivendo un programma Windows che non richiede molti add-on come un lettore PDF, ad esempio, è meglio usare C++ per l'intero programma o controllare altre opzioni per l'interfaccia utente? – Ahmed

4

Questa domanda non ha alcun senso a meno che non si stia davvero chiedendo se è necessario implementare le applicazioni come applicazioni XUL. Javascript da solo non ti dà nulla con cui costruire un'interfaccia utente. Una quantità enorme del codice in Firefox è il codice C++ per fornire i componenti Javascript con un framework UI.

+0

+1 Questo è un punto importante che ho perso. Il JavaScript in Firefox (e Python in Civ IV, ecc.) Non * crea * l'interfaccia utente, ma consente a terze parti di * personalizzare * e * modificare * l'interfaccia utente. –

+1

Sono un principiante. Non dovrei sapere tutto questo o non avrei chiesto in primo luogo! – Ahmed

+0

@Ahmed Non ti biasimo per non averlo saputo - ti sto semplicemente dicendo la verità. Javascript non è semplicemente un modo per costruire un'interfaccia utente per * qualsiasi cosa * al di fuori di un browser, o qualcos'altro (come Firefox stesso) che * fornisce * una struttura dell'interfaccia utente. Inoltre, probabilmente dovresti imparare a cosa servono realmente i downvotes. – Pointy

Problemi correlati