Tatsächlich kann die JVM prinzipbedingt deutlich performanter arbeiten als Interpreter (wie z.B. Perl, PHP, Ruby, etc.).
Auch Perl arbeitet mit einer Virtual Machine, auch wenn sie da nicht so heisst und alles transparent im Hintergrund abläuft. Im Gegensatz zu PHP wird erst der gesamte Code als Bytecode abgelegt und später nur noch ausgeführt. Allerdings macht die kein JIT. Das gibt es erst mit Perl 6/Parrot.
Parrot ist eine VM für dynamische Script-Sprachen und kann JIT. Bei manchen Sachen ist sie sogar schneller als der alte GCC 2.9x und so schnell wie die aktuellen GCCs. Aber solche Aussagen muss man natürlich immer mit Vorsicht genießen.
Parrot wartet außerdem mit einer Objektorientierten Assembler-Sprache auf ...
In interpretierten Sprachen (ich lasse perlcc und Caches mal außen vor), wird die Seite jedes mal von neuem geladen und vollständig interpretiert. Speicher ist heute billig, Zeit teuer.
nein, in Perl ist das nur der Fall, wenn man das seit Ende der 90er veraltete reine CGI nimmt. Mit mod_perl oder FastCGI o.ä. ist das nicht der Fall. Mit mod_perl hat man zudem den Vollzugriff (!) auf das gesamte Apache API und kann da Sachen machen, die sonst nur in C gehen.
Ich habe für einen Kunden zum Beispiel ein Authentifizierungs-Modul für den Apache mit mod_perl programmiert, das einen Access-Handler implementiert, der eine Authntifizierung an einem SAP-Backend vornimmt, via SSO-Ticket verifiziert und noch einige weitere macht. 10 Arbeitstage dauerte das, davon die Hälfte Ärger mit SAP. In C hätte es mindestens drei mal so lange gedauert, die Performance wäre aber nur unmerklich besser.
Hinzu kommen die verschiedenen Technologien, die es im Umfeld von J2EE und .NET gibt. Seiten wie Amazon oder eBay laufen nicht auf einem oder einer handvoll Rechner, da stehen ganze Rechenzentren dahinter.
Amazon arbeitet mit Perl und Mason. Siehe auch
http://www.masonhq.com/?AmazonDotCom
Wer das alles in Perl oder PHP machen will, der braucht verdammt viele trainierte Affen die billig programmieren können, ansonsten kann er seine Software nicht so schnell und günstig wie eine J2EE oder .NET Software ausliefern, wo auf bestehende Komponenten zurückgegriffen werden kann.
PHP ist ein anderes Kaliber, aber:
In Perl hat der Entwickler schon die fertigen Module vom CPAN installiert und eine erste lauffähige Version, bevor die Java-Leute überhaupt mal angefangen haben -- etwas übertrieben gesagt ;-)
Bei Perl findet man für fast alles fertige Module auf dem CPAN. Siehe
http://search.cpan.org/
Außerdem gibt es mit
Catalyst,
Jifty,
Gantry,
Mason usw. extrem leistungsfähige Frameworks.
Es ist schlicht und ergreifend ein Gerücht, dass Perl für komplexe/umfangreiche Web-Sachen nicht geeignet sei -- das Gegenteil ist der Fall. Dank Namensräumen und vielen anderen Features moderner Script-Sprachen auf jeden Fall besser als PHP.
Es wird auch häufig eingesetzt -- allerdings nicht so oft darüber geredet. ePublica/OpenBC/XING wurde ja hier schon erwähnt. Das ganze System ist in Perl gemacht.
Heise Online ist ein anderes beispiel, da wird auch fast alles mit Perl gemacht. Woher ich das weiss? Ich habe bei denen an einem Perl-Projekt mitgearbeitet -- außerdem suchen sie immer wieder mal Perl-Entwickler, man schaue sich mal die entsprechenden Anzeigen in der c't an.
Allerdings: Eines muss man Perl ankreiden: es gibt kaum Öffentlichkeitsarbeit.
Ansonsten: Letzte Woche fand der "
plat_forms contest", ein Programmierwettbewerb für Web-Sprachen, in Nürnberg statt. Ziel ist es, zu bewerten wie geeignet welche Sprache für die Web-Entwicklung ist. Leider nahmen nur drei Sprachen teil, da für Python, Ruby und .NET nicht genug geeignete (Top-) Teams teilnehmen wollten: Perl, Java und PHP. Die wissenschaftliche Auswertung des Wettbewerbs wird von der FU Berlin durchgeführt und dauert noch ein paar Monate. Aber: ich war dabei und die Perl-Teams haben sich alle überdurchschnittlich gut geschlagen, soweit ich das sehen konnte. Bei Java war insbesondere das Team von Accenture enttäuschend.
Aber bis zur Auswertung kann man schon mal raten, wie denn die
Perl-, Java- und PHP-Programmierer aussehen bzw. anhand von Fotos der Teammitglieder erraten, für welche Plattform sie programmieren. ;-)
Ciao
Alvar, Mitorganisator
Deutscher Perl-Workshop