Im Funktionsumfang
PHP ist nicht auf Listenoperationen spezialisiert wie PERL und
kommt auch nur im Homepage-Bereich zum tragen. Seiten sind in PHP in
der Regel leicht zu schreiben, PHP ist leicht zu erlernen und bietet
einen großen Funktionsumfang. Unterstützt werden in dieser Sprache zum
Beispiel Datenbankzugriff (Adabas D, dBase, FilePro, Interbase,
mSQL, MySQL, Informix, ODBC, Oracle, Sybase, Solid, Velocis,
Unix dbm, PostgreSQL), wofür man in fast allen anderen Sprachen erst
einmal nach einer Bibliothek suchen muss die diese Funktionen bietet.
PHP überrascht oft durch seine "Einfachheit". übergebene Parameter
werden so z.B. automatisch in nach dem Parameternamen benannte Variablen
geladen. All das macht das Programmieren sehr einfach, auch größere
Projekte werden sehr schnell realisiert und bringen den
schnellen Erfolg zurück ins Programmierstübchen.
Im Sprachaufbau
Zum Sprachaufbau ist zu sagen dass in der Regel für alle Arbeiten auf
reguläre Ausdrücke verzichtet werden kann.
Sie können benutzt werden aber für alle Anwendungsgebiete gibt es ähnlich
gute, leichter zu verstehende Funktionen.
Auch bemüht sich die Sprache sichtlich, um Verständlichkeit
und bietet teilweise (z.B. im logischen AND) sowohl
Pascal (AND) als auch die Möglichkeit, C (&&) - Syntax zu benutzen.
Geschwindigkeit
Ich halte PHP für ziemlich schnell zu lernen, ziemlich schnell zu
schreiben und ziemlich schnell in der Ausführung. Zumindest unter
Linux hängt PHP Perl i.d.R. um Längen ab (Unter Windows-Apache wird PHP
nicht als Modul genutzt, sondern als EXE, und dadurch wird die Sache
langsamer).
Auch ASP ist meines Wissens langsamer, von JSP ganz zu schweigen.
Nebenbei mag ich die Übersichtlichkeit von gut-geschriebenen PHP-Code.
Nicht zuletzt die Einbettung sorgt dafür, dass auch fremde Programmierer
(die evtl. nicht einmal viel Erfahrung mit PHP haben) schneller den
Durchblick haben als in vergleichbaren Perl-Programmen. Bei Perl kann man
zwar auch schnell "durchsteigen" - aber erst nachdem man es darin wirklich
intensiv jahrelang programmiert hat.
Nachteile von PHP
PHP hat auch Nachteile:
FastCGI
JSP, ASP und Perl haben Möglichkeiten, die PHP zur Zeit nur
mangelhaft hat:
Jede PHP-Seite wird unabhängig übersetzt
und ausgeführt, während ich z.B. bei FastCGI sagen kann:
Führe schonmal diesen Code aus (z.B. laden einer Datei) wenn der
Server gestartet wird. Diese Datei ist dann beim CGI-Aufruf schon
im Speicher und dementsprechend schnell kann Sie ausgegeben werden.
Das typische Anwendungsbeispiel lädt jedoch keine Datei, sondern
stellt eine Verbindung zu einer Datenbank her, ein Prozess, der oft
relativ zeitaufwändig ist. Das kann PHP durch "persistent connections"
auch, diese persistent connections wirken jedoch auf den Sprachumfang
sehr aufgesetzt und bieten auch nicht die Möglichkeiten von FastCGI
(z.B. eine Datei oder Bibliothek zu laden, Objekte zu erzeugen und nach
Beenden des Servers die Datein wieder zu schließen etc..).
SOAP
ich habe zwar schon eine PHP-Soap-Implementation gesehen
(
http://www.gigaideas.com.cn/phpsoap/),
diese erscheinen mir allerdings noch nicht ganz ausgereift.
Verbreitung
PHP ist nicht so verbreitet wie Perl (auch weil es jünger ist).
Es gibt weniger Informationen und vor allem unterstützen es
weniger Server.
Spezialisierung
Auch ist die Spezialisierung von PHP nicht immer ein Vorteil.
Lernt man PHP, so kann man damit nur im Bereich Homepages etwas
anfangen, während man z.B. mit Perl auch das ein oder andere
Kommandozeilenprogramm schreiben kann z.B. um in Linux Makefiles
zusammenzustellen.
"Interpretationssache"
PHP ist ein Interpreter und als solcher hat man niemals die
Ausführungsgeschwindigkeit eines Kompilers. Auch wären Änderungen
am Funktionsumfang nötig um Kompilierungen überhaupt erst aufkommen zu
lassen - z.B. das Ende aller evaluierenden Funktionen, also Funktionen
die selbst PHP-Code ausführen können wie include. Die einzige Sprache
bei der man von Kompilierung sprechen könnte ist Java (in eine
Pseudomaschinensprache die dann wieder interpretiert wird :(),
richtig
schnelle Lösungen erreicht man nur mit C++, Pascal und
anderen, die auch CGI-Funktionen übernehmen können.
Allein schon weil auch die Internet-Server (und nicht nur die surfer)
plattformunabhängig sein sollen ist das mit kompilierten Sprachen so
eine Sache. Allerdings wäre ein (eingeschränkter) PHP-Kompiler für
Linux eine feine Sache...