Il modello per la programmazione web negli anni 90 era il lancio di un'applicazione che utilizzava l'interfaccia common gateway per avviare un altro processo che è stato biforcato dal server web.
Il forking di un processo è un'operazione piuttosto pesante. Perl, questo significa far girare l'interprete, eseguirlo e quindi far terminare il processo. Quando si lavora con carichi pesanti, questo è diventato proibitivamente costoso (memoria e CPU).
FastCGI ha ridotto il sovraccarico di CGI riutilizzando il processo, riducendo il pesante biforcarsi di un processo. Questo è più in linea con i server delle applicazioni, il che ci porta a ...
L'approccio di sviluppo oggi consiste nell'avere un server delle applicazioni in un linguaggio che ha un modello di threading dei processi leggero, in grado di gestire carichi molto grandi (rispetto ai giorni di CGI). Di questi avete Java, Go e C # che seguono questo approccio.
Questo non significa che perl è fuori. Esistono server di applicazioni per Perl. Raramente si sente parlare di Catalyst rispetto a cose come Zope, NodeJS o la pletora di server Java App.
Parte di questo è il tempismo. Mentre lo sviluppo dei server di applicazioni Java era in corso, Perl è stato un po 'impantanato con il lavoro su perl 6 (ogni giorno ora) e quindi la comunità nel suo insieme lascia che il percorso di sviluppo passi.
I personalmente sconto la disciplina delle lingue come una ragione per cui perl ha mancato di indicare javascript, php e ruby come tre esempi di linguaggi ugualmente indisciplinati che rimangono popolari nell'area web.
Linguaggi come Java e C # (e in misura maggiore, python) con il principale supporto aziendale (Sun / Oracle, Microsoft, Google) e, sì, più disciplina nella lingua sono più allettanti per lo sviluppo aziendale.