Witzig, ich hätte das andersherum gesehen: Mit PHP kann man schnell was erreichen, aber letztlich sind Python und Ruby die besseren Kandidaten.
Hätte ich genauso gesagt. PHP ist für das schnelle Quick & Dirty aber für große Projekte relativ ungeeignet.
\––
Da keiner Perl gesagt hat sage ich das mal. 😉 Mit Perl ist das auch sehr gut Möglich. Datenbankanbindung ist meiner Meinung nach Perfekt in Perl Realisierbar. Es ist schnell und es gibt mitlerweile genug Helfer Module womit du einfach auf Datenbanken zugreifen kannst ohne auch nur ein SQL Befehl zu schreiben.
Frameworks gibt es wohl auch genug. Zur Zeit am weitesten verbreitet ist wohl Catalyst. Dann gibt es noch Maypole Das primär dazu gedacht war Datenbank basierte Webanwendungen zu schreiben. Mit HTML::Mason kannst du Perl Code in HTML einfügen. Ähnlich wie PHP. Allerdings halte ich davon nicht viel. Die Mischung von Code und Layout ist nicht leicht wartbar, jedenfalls bei größeren Projekten.
Ansonsten gibt es noch CGI::Application kann darüber weniger sagen. Ist aber auch ein Framework womit du sozusagen einzelne kleine Module entwickelst und diese dann zu einem größeren Projekt zusammen baust.
Die Frameworks erleichtern die Arbeit, die meisten basieren aber auf schon vorhandenen Modulen wie.
DBI - Datenbankanbindung
HTML::Template - Template System zur Trennung von Code & layout
Class::DBI - Erzeugt aus den Tabellen einer Datenbank Klassen in Perl
Da CGI für große Anwendungen langsam ist gibt es mod_perl2. mod_perl2 ist nicht nur ein Perl Interpreter der fest im Apache eingebaut ist. Er stellt dir die komplette Apache API unter Perl zur Verfügung. Das heißt du kannst sogar Module in Perl schreiben die deinen Apache erweitern. Und kannst dich praktisch überall im Apache einklinken und überall veränderungen vornehmen, die auch das Verhalten von Apache verändern.
Wenn du einfach nur Webspace irgendwo hast kannst du das aber eigentlich vergessen. Manche bieten zwar noch CGI an (und meinen damit meistens Perl), aber Sie haben meistens nicht die ganzen Module installiert. Wenn du komfortabel mit dem Frameworks arbeiten möchtest, dann musst du wohl oder überall Zugriff auf dem System haben. Sprich root Server. vserver etc.