Aaron Fischer Ingenieur, Vater, Heimwerker, Problemlöser

29 Juni, 2007

PHP ist doch(!) nicht so doof.

Programmiersprachen

Neulich habe ich in der Computer Zeitung einen Artikel mit dem Titel PHP glänzt mit Stabilität und Sicherheit gelesen. Der Artikel lag seit einer Woche auf meinem Schreibtisch und ich bin nie dazugekommen, meine Meinung dazu in die Welt zu schreien, bis heute :)

Viele fangen mit einfachen Programmiersprachen (Scriptsprachen?) an, in die Welt der Programmierung einzusteigen. Früher war das hauptsächlich entweder ein BASIC-Dialekt oder Perl. Als das Web anfing bunt zu werden, stürzten sich alle auf PHP. Damals (PHP3.x) war die Scriptsprache alles andere als sauber und man konnte im Prinzip nur Spaghhetticode erzeugen.

Aber die Sprache war sehr einfach zu lernen und das machte den Einstieg für jeden sehr einfach. So entstanden Berge von hässlichem PHP-Code der teilweise immer noch durch das Web wandert. Mit PHP4 und vor allem PHP5 (als man endlich richtig objektorientiert programmieren konnte) war die Sprache bereits zur Witzfigur unter den Profis abgestempelt worden. Zurecht: Es gibt zwar eine nahezu vollständige Objektorientierung, aber die Altlasten (zwecks backward compatibility (das deutsche Wort fällt mir grad nicht ein) spürt man immer noch. Es gibt ca. 2500 (laut meinem letzten Stand) einzelne Funktionen, die weder in Paketen oder Gruppen eingeteilt sind. Stattdessen haben die Funktionen einen Prefix. Wer sich lange genug mit PHP beschäftigt hat, kennt die gebäuchlichsten und findet auf php.net auch schnell die entsprechende Funktion für XYZ. Die Funktionen geben auch nie ein Objekt zurück, sondern meistens Integer-Werte oder Arrays. So ist man intern meist wieder beim Konvertieren und Umbauen. Auch Abstrakte Datentypen wie eine Hashmap oder eine Baumstruktur sucht man immer noch vergeblich. (Es gibt natürlich Ansätze wie ADT, die aber wieder im Sand verlaufen sind). PEAR und PECL haben die ganze Sache auch nicht viel besser gemacht. Es fehlt einfach ein grundlegender objektorientierter Ansatz. Andere Sprachen wie Ruby, Python oder Smalltalk sind in der Hinsicht schon viel weiter.

Aber dennoch hat PHP überlebt und ist auf den meisten Webservern installiert. Die Programmiersprache PHP hat eben den Vorteil, das sie schnell , unkompliziert in der Installation (im Vergleich zu Python oder Java) und verbreitet (im Vergleich zu Ruby) ist. Vermutlich ist auch die allgegenwärtige Trägheit bei Softwaresystemen daran Schuld. Frei nach dem Motto Wieso was neues ausprobieren, das alte tut doch noch.

Ach ja, die Sicherheit hängt meiner Meinung nach vom Code ab, nicht von der verwendeten Programmiersprache. Man kann mit jeder Programmiersprache gefährliche und sicherheitskritische Dinge anstellen, da ist der Programmierer oder der Systemadministrator ganz alleine daran schuld.