2009-05-21 9 views
7

Ich habe eine C++ - Desktop-Anwendung (geschrieben in wxWidgets) und ich möchte Unterstützung für einige Skriptsprache hinzufügen.SpiderMonkey vs JavaScriptCore vs?

Scripting wird hauptsächlich für Laufzeitkonvertierungen von Zeichenfolgen, Zahlen und Datumsangaben durch vom Benutzer bereitgestellten JavaScript-Code verwendet.

Ich möchte JavaScript verwenden, weil es weit verbreitet ist und jeder mit der Syntax vertraut ist.

googeln um, es scheint, ich habe zwei Möglichkeiten:

  • Spider von Mozilla
  • Javascript von WebKit

Hat jemand diejenigen versucht? Welcher wäre einfacher einzurichten? Kennen Sie eine andere Implementierung, die besser für meine Bedürfnisse ist?

BTW, ich ziele Windows und Linux-Plattformen.

Antwort

13

Es gibt auch Googles V8-JavaScript-Engine, schön baut auf Linux, Einbettung API scheint auch ganz einfach: (Im Vergleich zu SpiderMonkey, sah nie auf die JavaScriptCore-API)

3

JavaScriptCore verfügt über eine stabile C-API (und ABI) und war als Standardsystem-Framework auf macos verfügbar (und wird auch verwendet).

[edit: oh, und es funktioniert auf Linux und Windows als eigenständige Bibliothek, obwohl ich nur debian verteilt sie als solche glauben]

6

Natürlich können Sie auch Lua verwenden könnte, die nicht nur speziell entwickelt wurde, dafür ist es erheblich schneller als jedes JS.

Auch ist es gut gestaltete Semantik, ein sehr geringer Kern, einfacher C-API, große Beweglichkeit, eine sehr reifes JIT, die am nützlichsten Online-Community die ich gesehen habe, etc ...

+0

Ich habe über Lua, aber ich möchte die Benutzer meiner Anwendung speichern vom Erlernen einer neuen Sprache. Das andere mögliche Problem ist der Mangel an Funktionen, um mit Datum/Zeit umzugehen. AFAICT, Sie können nur die Systemzeit bekommen, und das ist alles. Allerdings muss meine Anwendung in der Lage sein, Zeichenketteneingaben als Datum zu parsen und dann Dinge wie "Add 3 days" oder "Finde Unterschiede in Tagen zwischen 2 dates" usw. –

+2

, unabhängig davon, welche Sprache du in deine App einbettest, zu haben eine spezielle API verfügbar machen. Einige Datenverwaltungsfunktionen können in weniger als 100 Zeilen von Lua hinzugefügt werden. Die "keine neue Sprache" ist ein echtes Problem, OTOH. – Javier

+3

"erheblich schneller als alle js"? [Zitat benötigt]! Link bitte. –