Bei uns in der Firma gibt es „Entwickler-für-Entwickler“ Vorträge. Dabei soll man Einblick in Bereiche der IT bekommen die man eben sonst nicht hat. Diese Woche habe ich als einer der wenigen PHP Entwickler aus der technischen Abteilung meinen anderen Kollegen PHP präsentiert.

Es war ein grober Überblick über den Hintergrund, die Funktionsweise und Syntax der Sprache. Mein Ziel war es, die Vorurteile gegenüber PHP auszuräumen, also habe ich vor allem die objektorientierte Sytax von PHP präsentiert.

Ich glaube kaum, dass ich jemanden der Java und .NET Entwickler von PHP „überzeugen“ konnte, aber ich hatte schon das Gefühl, mit so manchem Vorurteil aufzuräumen.

Zuletzt gab es noch einen Überblick über die Schwächen und Stärken der Sprache, den ich im Folgenden nun etwas ausführlicher Kommentieren möchte.

Ehrlich gesagt ist es schwer die einzelnen Punkte absolut als Stärke oder Schwäche von PHP zu bezeichnen, es ist meistens beides gleichzeitig, eben worauf man bei einem Projekt wert legt:

Die meistgenannte und eindeutigsten Schwäche von PHP ist die Geschwindigkeit oder eher die Langsamkeit. Im Vergleich zu anderen Sprachen soll sie deutlich langsamer sein. Ich habe es noch nie gemessen, aber ich bezweifle es nicht, schließlich muss jede einzelne PHP Datei vor jeder Ausführung interpretiert werden.
Mittlerweile gibt es Code Caches, die ohne großen Aufwand „angeschaltet“ werden können und eine Anwendung beschleunigen.
Seit neustem gibt es ja auch HipHop für PHP, aber das Konzept find ich irgendwie seltsam. Jemand von meinen Kollegen meinte, dass man damit PHP Entwickler einstellen könnte, um C++ Code zu produzieren. :)
Mich wundert vor allem, das so große Anwendungen wie „Facebook“ und „Magento“ auf PHP aufsetzen und damit derart erfolgreich sind. PHP kann also nicht so langsam sein.

Die große Stärke von PHP ist die leichte Erlernbarkeit. Bei meinen Recherchen habe ich folgende Auflösung der Abkürzung PHP gefunden: „People Hate Perl“. Fand ich gut, den Spruch, denn mit Perl kann ich mich nicht anfreunden. ;)
Natürlich sind auch andere Sprachen leicht erlernbar, aber PHP hat sich als interpretierte Sprache extrem gut durchgesetzt [Quelle].
Gleichzeitig ist diese „Stärke“ auch ein Schwäche: man trifft viel zu oft auf Code der einfach gruselig ist. Jeder hat mal solchen Code als Anfänger geschrieben, aber ein Anfänger greift eben eher zu PHP als zu einer anderen Sprache.

Auch ziemlich super finde ich in diesem Rahmen, dass diese eine Sprache für OOP, Skripte und Templates verwendet werden kann. Das heißt, man lernt nur eine Sprache. Smarty, JSPs (für Java) und sonstige separaten Templatesprachen gehn mir auf die Nerven.

Die nächste ähnliche Stärke und Schwäche ist die relativ große Community. Man findet schnell Antwort auf Probleme und auch die Sprache wird stetig weiterentwickelt. Übrigens sehe ich mittlerweile das Zend Framework als ein Teil von PHP, welches eigentlich fast schon als eigene „Stärke“ von PHP durchgehen könnte.
Die gleichzeitige Schwäche ist (ähnlich wie beim vorherigen Punkt), dass oft Code veröffentlicht wird, der im Sinne des „CCD“ schlecht ist. Aber meiner Meinung nach schützt eine „Typsichere“ oder noch sonst so tolle Sprache nicht vor schlechtem Code.

Aufgrund der zwei letzten Punkte, ist PHP eine der Sprachen, die so gut wie bei jedem Webhoster angeboten wird. Daneben gibt es noch eine Menge Freehoster, die das Erlernen der Sprache weiter unterstützen.

Wann also sollte bzw. kann man PHP verwenden?
Ich denke, gerade die letzten Punkte zeigen, dass PHP vor allem bei kleiner Projekten zu einem einfachen und schnellen Ergebnis führen. Kleinere Web-Tools würde ich auf jeden Fall in PHP umsetzen (natürlich auch weil ich es schon erlernt habe) und bei größeren Projekten nur dann, wenn das Budget stark begrenzt ist oder ich eine breite Masse erreichen möchte (Top-Beispiel: Magento).

Ansonsten würde ich mir auf jeden Fall mal andere Sprachen anschauen!
Was ich momentan zum Beispiel an Java cool finde, ist das in Java verwendbare GWT. Es ist einfach umwerfend, wie mit reinem Java Code eine komplette Webanwendung mit AJAX Unterstützung geschrieben werden kann!

Advertisements