¿Hay un lugar para C en el desarrollo web?

Lo hice hace algunos años (¡hace 15-20 años!).

Trabajé para una compañía que desarrollaba una aplicación de correo electrónico C / Win32, un poco como Outlook Express, pero con algunas características especializadas (usando X.400 en lugar de POP / IMAP) para uso militar. También tenía una versión más clásica, IIRC.

Lo que sea, sintieron que precisamente con el resultado del Outlook Express gratuito, su modelo de negocio estaba en riesgo. Y hubo un aumento de clientes de correo electrónico basados ​​en la Web, como Hotmail. Entonces pensaron en usar sus conocimientos para crear su propio cliente de correo electrónico en línea. Con el objetivo de venderlo a las empresas para su uso privado.

Como todos conocíamos bien el lenguaje C, lo codificaron en C. Su argumento fue: será mucho más rápido que todas estas aplicaciones basadas en PHP.

Escribieron lógica de bajo nivel para protocolos (POP3 / IMAP4 / LDAP, etc.), para la decodificación de Mime, etc.

Su modelo de negocio no era tan bueno (y hubo una crisis mundial), porque más tarde tuvieron que despedir a docenas de personas, incluyéndome a mí … 🙁

De todos modos, es decir, sí, se puede hacer. Pero no será necesariamente fácil, y supongo que no muchas tiendas de codificación lo hacen: prefieren lenguajes de alto nivel, como Java, PHP, Python o JavaScript. Puede ser más lento (¡aunque los compiladores Jit han progresado mucho!), Pero generalmente es más que suficiente para la mayoría de las necesidades.

Lamentablemente, probablemente no.

Yo también amo C, es un lenguaje maravilloso, y hace mucho tiempo que escribí un sitio web con él en un IBM AS / 400, pero escribir sitios web con C es increíblemente raro, y casi nadie lo hace en estos días.

Podría trabajar en sus propios proyectos en C, por supuesto, pero ser contratado como desarrollador web trabajando en C, eso probablemente no va a suceder.

Si quieres trabajar en C, estaría buscando cosas de juegos, o cosas de sistemas de nivel inferior, no web. Si se compromete a trabajar con material web, desafortunadamente tendrá que usar otro idioma.

C ++ ciertamente:

  • Wt, Kit de herramientas web C ++
  • Marco TreeFrog
  • CppCMS – Marco web C ++ de alto rendimiento

También hay marcos de desarrollo web C

  • Un marco de aplicación web fácil de usar para C
  • Arduino – Servidor web

También habrá personas desarrollando módulos críticos de rendimiento para PHP, nodo, Apache, etc. en C.

Hay buenas razones por las que C no es popular para el desarrollo web, pero eso no significa que nadie lo esté usando o que no haya ventajas para aquellos lo suficientemente capacitados como para crear programas web robustos con él.

Hoy temprano estaba hablando con algunos miembros del equipo de SparkPost. Tienen dos equipos principales. Su equipo más “front-end” usa node.js para crear la API.

Su backend usa C, C ++ y Lua para usar el hardware de sus servidores lo mejor posible. Entonces sí, puedes usar C en el desarrollo web. Sin embargo, solo será para proyectos a gran escala donde la eficiencia es extremadamente importante.

No hay nada que le impida crear un programa en C que escupe “Tipo de contenido: texto / html \ n \ n” seguido de algo de HTML, luego obtenga Apache para que lo sirva. Pero si crea aplicaciones web en C y comienzan a hacerse grandes, se vuelve realmente aburrido, tratar de manejar cadenas en C.

Estoy seguro de que algunas grandes empresas usan C o C ++ como su back-end web por razones de eficiencia, pero no es muy común debido a que este lenguaje no es muy ideal para el manejo de cadenas. A menos que sea Google o al menos Amazon, probablemente sea mejor no entrar en él.

Trabajé para un editor web que usaba C ++ para sus aplicaciones web. Fue una pesadilla. Luego nos mudamos a Java.

Bueno, lo hice hace un tiempo, compilé todo el sitio en un módulo Apache. Fue raro. El flujo de usuarios se controlaba con lógica binaria, muchas cosas estaban definidas con código fijo y era totalmente no estándar en muchos sentidos. OK, fue súper extraño, incluso generó VRML sobre la marcha a partir de ese código C 😀

Pero bueno, fue súper rápido y divertido de escribir, y la cosa es que, por loco que parezca, en realidad es solo un nivel de abstracción de cómo se codifican la mayoría de los sitios web. PHP es solo un módulo de Apache escrito en C (o al menos lo fue, la última vez que lo revisé).

Al final del día, no creo que sea demasiado loco, especialmente si su sitio es un trabajo totalmente personalizado y no está destinado a ser distribuido para que otras personas lo usen / personalicen. También, punto clave, si no está destinado a algún día ser entregado a otra persona 😉

Sin embargo, si vas por esta ruta, echaré un vistazo a Go. Puede tener lo que te atrae a C, pero es menos propenso a errores y más divertido / productivo para escribir cosas web. Tiene muchas cosas web en la biblioteca estándar en realidad

No.*

C sería estúpido por muchas razones, para construir sitios web reales. Los cuellos de botella no están en lo que C es bueno, y C es muy inferior, a los muchos lenguajes, que las personas realmente usan o podrían usar.

Al igual que con muchos otros usos de C (y C ++), la gente dice que es una mala práctica profesional usar C. Estoy de acuerdo, para la mayoría de las cosas, al menos en la construcción de sitios web (tenga en cuenta la excepción).

* Excepto que, muchas cosas sobre las que se basa la web están escritas en C. Nota, ya construida. Pilas TCP / IP (en sistemas operativos), tiempo de ejecución PHP, implementación de Julia (C ++, creo que algunos C y más lenguajes).

Hay algunas bibliotecas de servidor HTTP en C, especialmente libonion. Y también hay FastCGI.

Por lo tanto, puede escribir aplicaciones web en C. Sin embargo, eso puede llevar más tiempo de desarrollo que con Ocsigen & Ocaml o con HOP u Opa.

Tenga en cuenta que muchos dispositivos de consumo (por ejemplo, enrutadores ADSL) incorporan algún servidor HTTP especializado dentro de ellos. Probablemente esté codificado en C.

Depende de lo que llames desarrollo web.

Si quieres decir, desarrollo web como en:

  • crear sitios web o aplicaciones web de tipo web 2.0
  • gestión / personalización de módulos de WordPress
  • desarrollando widgets geniales o incluso sistemas de back-end a gran escala
  • utilizando marcos web

Entonces no, definitivamente, como se indica en otras respuestas. No es que no pudieras . Pero al final terminarías desarrollando tus propias abstracciones sobre C y reinventando la rueda.

Pero , si está en desarrollo web , usted incluye trabajar en las herramientas que impulsan el desarrollo web de hoy, como:

  • desarrollo de módulos para el núcleo de Python
  • Mejorar el motor principal de MongoDB (principalmente C ++ en realidad)
  • haciendo que NodeJS funcione mejor y más rápido
  • ayudando a PHP a lanzar su séptima versión
  • Mejorar el comportamiento de concurrencia del servidor Apache httpd en múltiples CPU
  • Mejora de bases de datos NoSQL como WhiteDB

Entonces, sí, hay muchos lugares para C en el desarrollo web. Y todavía hay muchas cosas por hacer allí.

En el mundo incrustado, C es el lenguaje en absoluto. Por ejemplo, en un enrutador SOHO, un sistema NAS o un dispositivo de transmisión de medios, se pueden implementar muchos componentes en C.

Al trabajar para una empresa de enrutadores SOHO, sé que la interfaz de configuración está construida por un servidor web y CGI escritos en C. Las páginas web están escritas en Lua (El lenguaje de programación Lua).

Bueno, no es el entorno típico para una aplicación web, pero como otros autores ya han mencionado para dispositivos pequeños (por ejemplo, Arduino), C es o puede ser su mejor amigo.

Me imagino que los servicios dedicados que surgen con ‘Internet de las cosas’ o Industry 4.0 ofrecen posibilidades adicionales para trabajar, en un dominio relacionado.

No haría desarrollo web regular en C, como en CGI o algo similar. Si quisiera usar C, probablemente estaría escribiendo o contribuyendo a los módulos para la pila, por ejemplo, apache, o haciendo un código crítico de rendimiento que el nivel medio llamaría durante el procesamiento, por ejemplo, puede escribir extensiones en Python en C.

Hay muchas cosas web hechas en C, pero no son cosas de front-end. Por ejemplo, los servidores web a menudo están escritos en C. El software de enrutamiento puede estar en C. El software de base de datos que se encuentra detrás de muchos servicios web está escrito en C.

No sé si esas áreas cumplen con sus criterios para el trabajo web. Ciertamente son vitales para hacer que la web sea útil, pero al mismo tiempo están lejos de generar contenido.

Creo que solo la imaginación puede dejar de usar C.

Recientemente llegué a saber que C / C ++ se puede utilizar para ejecutar como biblioteca dentro de php que está siendo atendido por apache.

Además, como alguien dijo, ejecutar un binario compilado C / C ++ compilado a través de la línea de comandos php dentro de Apache es una estrategia normal.

Buena suerte codificando.

Si puede extender su pregunta a c ++, definitivamente sí. Inicialmente escribimos un montón de páginas web y servicios en un lenguaje web tradicional (Python), pero dudamos que fuera lento y usara mucha memoria.

reescribimos el backend en c ++ usando cppcms, que es similar a django en Python y parece haber resuelto nuestros problemas.