CoffeeScript wird aus einem sehr einfachen Grund mit JavaScript kompiliert. JavaScript ist de facto die clientseitige Sprache, und es ist nicht zu erwarten, dass Browser-Anbieter CoffeeScript nativ unterstützen, wenn nur eine alternative Syntax angeboten wird.
In sehr ähnlicher Weise liegt der Schwerpunkt der Hochsprache für C-Übersetzer in der unmittelbaren Portabilität, da es für fast jede Plattform einen C-Compiler und eine Fülle von C-Bibliotheken gibt. Vala wurde zum Beispiel entwickelt, um :
- ein Compiler für das GObject sein ,
- native ausführbare Dateien erstellen (über den C-Compiler der Maschine),
- Referenzzählung automatisieren und
- weiterhin für GNOME C-Programmierer zugänglich sein
GNOME ist ein traditionell C-orientiertes Projekt, und GObject ist speziell in C geschrieben. Vala würde wahrscheinlich unter GNOME-Entwicklern keine große Liebe finden, wenn es zu Maschinencode kompiliert würde, unabhängig von seiner freundlicheren Art (und Syntax). Nicht jeder schien die Syntax zu mögen, bis zu dem Punkt, dass eine andere Sprache, Genie , gebaut wurde, um sie zu verbessern.
Für ein C ++ - Beispiel hat Facebook HipHop entwickelt , einen PHP-C ++ - Übersetzer. Sie versuchten, ein sehr spezifisches Problem, die CPU-Auslastung, zu lösen, ohne ihren gesamten PHP-Code ersetzen und ihre Ingenieure neu ausbilden zu müssen (oder, schlimmstenfalls, sie zu ersetzen). Dies ist ein weitaus spezifischeres Beispiel, da Facebook-Skalierbarkeitsprobleme eindeutig sind und der Zugriff auf den C ++ - Zwischencode ebenfalls nützlich sein kann, da PHP-Erweiterungen in C und C ++ geschrieben sind.
Ein Übersetzer von einer höheren Sprache in eine andere ist daher eine gute Idee, vor allem, wenn Sie auf den Zwischencode zugreifen müssen. Für CoffeeScript ist der JavaScript-Code aufgrund seiner breiten Browser-Akzeptanz und für Vala, Genie und HipHop aufgrund der vorhandenen Codebasis erforderlich. Der Zugriff auf den Zwischencode bedeutet natürlich, dass Sie ihn bei Bedarf weiter optimieren können.
Im Allgemeinen wäre es jedoch keine so gute Idee, eine Sprache zu erstellen, die in C oder in eine andere Sprache übersetzt wird, wenn Sie den resultierenden Code nicht verwenden könnten. Es gibt so viele Sprachen, wenn Sie mit C nicht klar kommen, wählen Sie einfach eine andere aus. Zufälligerweise die erste C ++ Compiler von Bjarne Stroustrup geschrieben, Cfront, war ein C mit Klassen zu C - Übersetzer, aber das war hauptsächlich , weil als neue Sprache, es war unmöglich , Bootstrap C mit Klassen.