Mein persönlicher Favorite ist momentan PHP. Python kenne ich gar nicht, unter JSP kann ich mir noch was vorstellen, hab’s aber noch nicht ausprobiert.
PHP:
relativ schnell, auf vielen Providern vorinstalliert, einfache DB-Anbindung, unzählige Funktionen, die das Erstellen von dynamischen Webseiten vereinfachen, läuft auf vielen Systemen, meiner Meinung nach leichter zu lernen als Perl, weil es nicht die vielen Spezialanweisungen, Implikationen etc. hat. Zusätzlich zu den Regular Expressions (RE) noch Stringfunktionien für einfache Operationen, die schneller sind als die eher aufwendigen REs. Open Source.
Perl ist zwar mit mod_perl auch sehr schnell, aber mod_perl ist halt auf den meisten (billigeren) Webhostern nicht installiert. Ausserdem ist die Verbindung zwischen HTML und Perl-Code nicht so schön gelöst. Allerdings gibt es auch in HTML eingebettetes Perl, soweit ich weiß.
ASP:
Grundsätzlich ist ASP das gleiche wie PHP nur in JScript oder VBScript, allerdings mit weit weniger Funktionen. Man ist daher oft auf COM-Componenten angewiesen (DLLs). Läuft vernünftigerweise auf dem IIS. Ein Problem ist bei den DLLs mit den Componenten, dass die bei jeder Änderungen immer bei gestoppten IIS neu registriert werden müssen. Vermutlich gibt’s da mittlerweilen besser Lösungen. Wir hatten aber oft Probleme mit DLLs.
Schätzungsweise ist JSP ähnlich wie ASP und PHP nur mit Java-Syntax.
Zum Thema Logik von der Präsentation trennen:
Als wir mit unserem ersten ASP-Projekt gestartet haben, wollte wir auch großartig VB-Componenten erstellen, die die Programm-logik enthalten. Im Laufe der Zeit habe ich allerdings festgestellt, dass die meiste Logik eigentlich durch die Verlinkung der Seiten entsteht. Die Webseiten schauen fast immer gleich aus (vereinfacht):
Session-Management
Daten aus DB lesen
Daten aufbereiten und präsentieren (ev. in Formular)
oder
Session-Management
Daten vom Formular lesen
Daten verifizieren
Daten in DB schreiben
Das Session-Management und DB-Grundfunktionen (öffnen) werden in eigene Funktionen/Dateien ausgelagert. Lesen und Schreiben aus der/in die DB geht einfach mit SQL; Perl, PHP und ASP und vermutlich auch JSP bieten dazu einfache Funktionen an. Das Daten Aufbereiten und Verifizieren war bei uns auch meist so einfach, dass sich externe Komponenten/Module selten ausgezahlt haben.
Und beim Debuggen/Warten hat es sich auch als einfacher erwiesen, z.B keine DLLs zu verwenden, sondern nur ASP, oder nur PHP. Eventuell in Form von Funktionen in includierten Dateien.
Kann aber sein, dass das Erzeugen von externen Komponenten/Module in Java mit JSP einfacher und weniger Zeitintensiv geht.
In PHP braucht man externe Komponenten vermutlich nur mehr, wenn man entweder dem Kunden den Source-Code nicht zeigen will, falls das System beim Kunden läuft, oder wenn die Geschwindigkeit extrem wichtig ist. Bei ASP braucht man sie öfters, weil ASP weniger Funktionen direkt unterstützt (z.B. Datei-Upload)
PS: Bin noch nicht wirklich Experte, da ich in noch keinem der obigen Sprachen wirklich lange entwickelt habe. Aber das waren so meine Eindrücke.
Grüße
Hannes