21
PHP: Interpretiert oder vll. doch lieber kompiliert?
PHP wird ja gerne als Skriptsprache für Kiddies abgestempelt (darüber zu diskutieren lohnt nicht!). Was vielen eher unbekannt ist, es gibt schon länger einen Compiler: Roadsend PHP. Roadsend PHP ist eine quelloffene und eigenständige (basiert nicht auf der ZendEngine) Implementierung der (Skript-)Sprache PHP und ermöglicht es eigenständig lauffähige Programme zu erzeugen (Binaries, es wird zur Laufzeit kein Interpreter mehr benötigt). Es werden weite Teile von PHP4/5, sowie einige Erweiterungen unterstützt. Aktuell findet ein Rewrite unter C++/LLVM statt.
Neu (wobei es das Konzept dazu auch schon eine Weile gibt) ist phc. Hier wird der PHP-Code in C-Code übersetzt und dann durch den GCC gejagt. Das Ergebnis ist auch hier ein natives Binary. Zusätzlich lässt sich mit phc der Sourcecode auch zum Einen „aufhübschen“ (pretty-print) bzw. zum Anderen unleserlich machen (obfuscate).
Der Vorteil?
Nun, zum Einem muss man den Sourcecode bei einem kleinen Kommandozeilen-Skript nicht mehr herausgeben und ist auch nicht mehr auf die Installation des Interpreters angewiesen (mir ist durchaus bekannt, das es für PHP entsprechende Encoder gibt, doch deren Byte-Code/Zwischencode lässt sich deutlich leichter „entschlüsseln“).
Zum Anderen lassen sich damit z.B. eigene Bibliotheken/Extensions schreiben und damit Performancegewinne zur Laufzeit realisieren. Sicherlich sind diese Extensions nicht das Mass der Dinge, und mit Handarbeit (am C-Code) dürfte sich noch einiges an zusätzlicher Perfomance gewinnen lassen, aber für den „einfachen“ PHP-Entwickler dürfte dies ein einfacher Einstieg in die Extensions-Entwicklung sein.