2011-04-18 12 views
7

Por una vez, me he encontrado con muchas cosas sobre el uso de C++ que no es aconsejable para SSS y he recomendado el uso de los denominados lenguajes interpretados como PERL y PHP para el mismo. Pero necesito las características avanzadas de OO y la flexibilidad de C++ para garantizar un código escalable y más manejable.C++ Server-Side-Scripting

He intentado muchos artículos y búsquedas en Internet y ninguno fue útil hasta el punto de que todavía no tengo idea de si es posible escribir SS-Scripts en C++ y, en caso afirmativo, cómo.

He pensado en algunas ideas, incluida la de escribir un servidor web en C++ y responder en consecuencia después de analizar la solicitud HTTP. Pero sería reinventar la rueda y terminaré desviándome de mi proyecto principal y dedicando mucho trabajo para garantizar un servidor HTTP funcional y seguro.

También he considerado las extensiones de PHP, pero una vez más, el enfoque también viene con su propio equipaje y gastos generales.

Mis preguntas son:

  • ¿Es posible SSS para programar en C++?
  • En caso afirmativo, ¿cuáles son los enfoques a mi disposición?

Gracias!

+0

¿Por qué Python no funciona para usted? –

+0

Defina "scripting del lado del servidor" –

+0

@Brian: SSS para trabajar con el sistema del servidor y el nivel de la base de datos. – check123

Respuesta

6

Haciendo caso omiso, por el momento, la conveniencia de utilizar C++ para el SSS, su primera opción sería probablemente Wt. Contrariamente a las implicaciones en algunas de las otras respuestas, no es probable que el tiempo de desarrollo sea aumentando en 10x (o en cualquier lugar cercano). No, no te estás perdiendo todas las características de infraestructura que esperarías en PHP, Perl o Python.

De hecho, mi propia experiencia es más bien lo contrario: mientras que PHP (por ejemplo) hace que sea bastante fácil de conseguir un sitio hasta web y correr con bastante rapidez, produciendo un sitio web que es muy estable, seguro y sensible es una historia completamente diferente.Con Wt, más bien parece ser el caso (al menos en mi experiencia, ciertamente limitada). El inicio y la ejecución del sitio inicial probablemente tomará un pequeño por más tiempo, pero tan pronto como se vea, actúe y se sienta como usted desea, es probable que solo necesite pequeños ajustes para estar listo para el uso público.

Volviendo a la pregunta sobre la conveniencia: desarrollar en C++ puede ser un poco más complejo que en algunos idiomas que son más comunes en el mercado de SSS, pero aún es un pan comido en comparación con hacer bien la seguridad. Si alguien tiene la más mínima dificultad para escribir C++ (por ejemplo, para rastrear y liberar memoria cuando ya no es necesaria), I definitivamente no quiero que se acerquen al código de mi sitio web.

+0

El tiempo de desarrollo puede no aumentar en 10x (aunque no me sorprendería que lo hiciera), pero aumentará: el ciclo de compilación/enlace/instalación C++ va a ser significativamente más largo para los cambios en el código C++ de lo que será cambios a un script PHP. –

+0

@unapersson: parece dar por hecho que el ciclo de compilación será la * única * diferencia (o incluso una significativa). Al menos IME, eso ni siquiera está cerca de ser correcto. –

+0

@Jerry IME el tiempo empleado por el intérprete de PHP para hacer sus cosas es significativamente más corto que el del compilador y del enlazador C++ (no olvidemos el enlazador) para hacer sus cosas. Pero YMMV. –

3

No lo recomendaría, pero ciertamente puede escribir CGI scripts en C++ (o en C, o en FORTRAN). ¿Pero por qué molestarse? Los lenguajes como PHP hacen un trabajo mucho mejor más fácilmente, y parecen escalar bien para algunos sitios bastante importantes.

2

CGI es la forma "estándar" de tener solicitudes web para el manejo de códigos C o C++, pero también puede buscar escribir un módulo que se vincule al servidor web en tiempo de ejecución. Google para "apache module API" (si usa Apache) o "IIS module" (si usa IIS).

+0

Este suena bien, pensé en tratar de adoptar Apache para mis necesidades. – check123

+0

@check No es bueno. Escribir módulos de Apache no es para nada simple, particularmente en C++: realmente no quieres ir allí. –

+0

@unapersson, Estaría contento si puede arrojar más luz. – check123

0

¿Puede pagar 10 veces más tiempo de desarrollo? Todos los bits de infraestructura-ish que das por sentado en php, perl, python no existen o son mucho más difíciles de usar en C++. Veo solo dos razones válidas para hacer esto: 1. Solo tiene C++ en su plataforma. 2. El servidor realmente tiene necesidades de rendimiento muy altas que se beneficiarían de las optimizaciones específicas del problema.

+0

@Torp sobre sus dos puntos: 1. Tengo un buen número de tecnologías a mi disposición. 2. Si no es muy alto, tiene necesidades de rendimiento más altas de lo normal. – check123

+0

Si está seguro de eso, también podría hacer un servidor personalizado. Dependiendo de su problema, probablemente no necesite escribir un servidor http completo, solo un subconjunto limitado de este. Simplemente llámalo 'servidor personalizado' y no 'guión del lado del servidor' :) – Torp

+0

Sí, eso suena una idea bastante buena, solo que soy un poco paranoico con respecto a la seguridad y mi falta de experiencia con la programación del servidor podría dejarme expuesto. – check123

0

Puede escribir una aplicación CGI en C++ utilizando un marco apropiado (como this one). Pero recomendaría simplemente ir con Perl o PHP. Te ahorrará mucho tiempo. Esas herramientas son más adecuadas para este tipo de trabajo.

EDITAR: corregido el enlace

+0

Bueno, el enlace apunta hacia atrás a esta página. – check123

+0

Mi mal. Pegado del lugar equivocado :) Lo corrigió. –

+0

Gracias! Lo echaré un vistazo. – check123