La "obsolescencia" de CGI es realmente solo un factor si está haciendo sitios grandes y complejos con muchas páginas vistas.
Muchas personas expresan la idea de que CGI es obsoleto, realmente no entiendo qué es CGI. Existe una idea generalizada errónea de que CGI es una tecnología intrínsecamente basada en Perl. Muchas personas atacan CGI como una forma de rellenar ataques de culto en Perl en apoyo de cualquier lenguaje que admitan. Si quiere ser un verdadero tecnólogo, debe comprender los problemas fundamentales y tomar una decisión basada en los hechos de la situación.
CGI es una interfaz con un servidor web que le permite escribir páginas interactivas en cualquier idioma-- even befunge. Cuando un servidor recibe una solicitud de una página controlada por una secuencia de comandos CGI, el servidor ejecuta la secuencia de comandos y devuelve los resultados al solicitante.
Si su lenguaje de programación requiere una VM, un intérprete o un compilador para cargar cada vez que se ejecuta, entonces este tiempo de inicio será requerido cada vez que se acceda a su página.
Los aceleradores CGI como FastCGI, mod_php, mod_perl y demás, mantienen un intérprete/VM en memoria en todo momento, pueden mantener las bibliotecas cargadas e incluso almacenar en caché el bytecode de los scripts para reducir la sobrecarga de inicio del script.
Si está haciendo un sitio simple, personal o hobby, CGI estará bien. Lo mismo hará PHP.
Si su sitio necesita una tecnología más rápida, puede pasar a mod_perl, FastCGI u otras tecnologías de aceleración CGI.
El idioma que utiliza debe estar determinado por las herramientas que proporciona y cómo se ajustan a sus necesidades.
- Haga una lista de las capacidades que necesita.
- Haz una lista de los interruptores de ofertas.
- Ahora compruebe cada uno de sus posibles conjuntos de herramientas con estas dos listas.
- ¿Cuál sale mejor? Pruébalo.
- ¿Es malo? Elimínelo de la lista y vuelva al paso 4.
Además, recomiendo no usar befunge. El hecho de que sea posible no significa que deba usarlo.
Actualización: Como mpeters señala, mod_perl, mod_php, mod_ruby, et alia son mucho más que meros aceleradores CGI; proporcionan acceso a la API de Apache. Actúan como aceleradores CGI, pero pueden hacer mucho, mucho, más.
FastCGI es un acelerador de CGI puro.
Actualización 2: PHP y CGI no son mutuamente excluyentes. PHP can be installed as a CGI. PHP se usa a menudo con FastCGI.
En lugar de CGI simple, eche un vistazo a Catalyst. http://catalystframework.org –
@Brad Gilbert - Usted está combinando CGI.pm y CGI la interfaz. Catalyst puede ejecutarse como un CGI (la sobrecarga de inicio es un poco alta, pero puede ser aceptable). – daotoad
La pregunta es si le proporcionan una interfaz CGI para el servidor web, CGI.pm o ambos. La coincidencia de nombrar significa que no podemos decir, ¿sabes? – ijw