2010-09-27 3 views
6

Nun..ich lerne jetzt Java und ich bin neugierig zu wissen, ob dies zu einer merklichen Leistungssteigerung führt? Und wenn viele Entwickler ähnliche Methoden für Windows-Programmierung (C++ Backend und Java UI) befolgen oder andere Sprachen wie Python verwendet werden?Warum Firefox in C++ und Javascript UI geschrieben wird?

* dies: C++ - Backend und andere Sprachen für UI, anstatt die andere Sprache zu verwenden, um das gesamte Programm zu schreiben.

+24

Es gibt einen gewaltigen Unterschied zwischen ** Java ** und ** Javascript ** - sie sind ** komplett ** verschiedene Sprachen. – Pointy

+0

Was meinen Sie mit "Wird dies zu einer spürbaren Leistungssteigerung führen?". Meinst du, dass Java eine Leistungssteigerung gegenüber X anderen Sprache in Ihrer spezifischen Verwendung sein wird oder was? Vielleicht möchten Sie etwas genauer in Ihrer Frage sein. –

+3

Ich nehme an, dass es ein bisschen ein Sprachproblem gibt, aber Sie stellen drei getrennte Fragen, von denen keine ein vollständiger Gedanke ist. (Wenn du sagst "wird das eine merkwürdige ... ergeben", was ist "das"?) –

Antwort

23

Erstens sind Java und JavaScript völlig unterschiedliche und nicht verwandte Sprachen. Firefox verwendet JavaScript; Es verwendet überhaupt kein Java.

Zweitens wurde dies aus Leistungsgründen nicht getan, es wurde gemacht, um es einfacher zu schreiben, Add-ons und Erweiterungen zu schreiben, die mit Firefox auf jeder Plattform verwendet werden können. C++ - Code muss kompiliert werden und nach dem Kompilieren wird er nur auf der Plattform ausgeführt, für die er kompiliert wurde. JavaScript ist eine interpretierte Sprache, die in einem Interpreter ausgeführt wird, der in den Browser eingebettet ist. Daher können dieselben Erweiterungen in der Regel auf MacOS, Linux oder Windows (oder jedem anderen, auf dem Firefox läuft) ausgeführt werden.

Und ja, es gibt andere Programme, die Skriptsprachen für diese Art von Zweck verwenden (um eine einfache Anpassung und Erweiterung zu ermöglichen). Zum Beispiel ist Civilization IVs Benutzeroberfläche und Spiellogik aus diesem Grund vollständig mit Python und XML geschrieben, während der leistungsintensive Grafikcode immer noch in C++ ist.

+4

Civ 4 war berüchtigt für das Laufen wirklich langsam und Essen Unmengen von Speicher, obwohl. – Crashworks

+4

Macht das nicht gerade den Punkt, dass es aus Leistungsgründen * nicht * getan wurde? ;) –

+0

Also die Verwendung von Javascript nur für die einfache Anpassung? Was Wenn ich ein Windows-Programm schreibe, das keine großen Addons wie zum Beispiel einen PDF-Reader benötigt Ist es besser, C++ für das gesamte Programm zu verwenden oder andere Optionen für die Benutzeroberfläche zu prüfen? – Ahmed

4

Diese Frage macht wirklich keinen Sinn, außer Sie fragen wirklich, ob Sie Ihre Anwendungen als XUL-Anwendungen implementieren sollten. Javascript von selbst gibt Ihnen nichts, mit dem eine Benutzeroberfläche zu erstellen. Ein großer Teil des Codes in Firefox ist C++ - Code, um die Javascript-Komponenten mit einem UI-Framework zu versehen.

+0

+1 Dies ist ein wichtiger Punkt, den ich verpasst habe. Das JavaScript in Firefox (und Python in Civ IV usw.) erstellt * die Benutzeroberfläche nicht, es ermöglicht Drittanbietern * die Benutzeroberfläche anzupassen * und * zu modifizieren *. –

+1

Ich bin ein Anfänger. Ich soll das alles nicht wissen oder hätte es gar nicht erst gefragt! – Ahmed

+0

@Ahmed Ich beschuldige dich nicht dafür, dass du es nicht weißt - ich sage dir einfach die Wahrheit. Javascript ist einfach keine Möglichkeit, eine Benutzeroberfläche für * irgendetwas * außerhalb eines Browsers oder etwas anderes (wie Firefox selbst) zu erstellen, die * ein UI-Framework * bereitstellt. Auch sollten Sie wahrscheinlich lernen, wofür Downvotes wirklich sind. – Pointy

Verwandte Themen