copyright (c)  2003   useGroup
PHP

Jochen Stärk
PHP-Tutorial
PHP vs. Perl und JSP

nach untenIm Funktionsumfang
nach untenIm Sprachaufbau
nach untenGeschwindigkeit
nach untenNachteile von PHP
nach unten"Interpretationssache"

Im Funktionsumfang

nach obenIm 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

nach obenIm 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

nach obenGeschwindigkeit 

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

nach obenNachteile 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"

nach oben"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...


copyright (c)  2003   useGroup