Facebook y Amazon (por ejemplo) están escritos en C ++. ¿Cómo puedo usar o implementar código C ++ en la página web?

Facebook está escrito en PHP, luego escribieron HipHop que tradujo parte del código de Facebook (solo los desarrolladores de Facebook saben qué% de edad) a C ++ y luego sirvió ese código para aumentar el rendimiento.

Una publicación de blog detallada sobre HipHop por Haiping Zhao, un programador en Facebook (2 de febrero de 2010): HipHop para PHP: Move Fast

Más tarde, decidieron que la traducción a C ++ y el servicio necesitan más trabajo, por lo que comenzaron a trabajar en HHVM (máquina virtual HipHop) y dejaron de trabajar en HipHop.
HiopHop fue un compilador de fuente a fuente (PHP a C ++), y HHVM (como se define en http://hhvm.com/) es una máquina virtual diseñada para ejecutar programas escritos en Hack y PHP . HHVM utiliza un enfoque de compilación justo a tiempo (JIT) para lograr un rendimiento superior mientras mantiene la flexibilidad de desarrollo que proporciona PHP.

Una publicación de blog detallada sobre HHVM por Drew Paroski: Acelerando el desarrollo basado en PHP con HHVM

Utilicé la palabra Hack arriba, ¿puedes pensar qué demonios es Hack?
Definición de http://hacklang.org:
Hack es un lenguaje de programación para HHVM que interopera perfectamente con PHP. Hack reconcilia el rápido ciclo de desarrollo de PHP con la disciplina proporcionada por la escritura estática, al tiempo que agrega muchas características que se encuentran comúnmente en otros lenguajes de programación modernos.

Una publicación de blog detallada sobre Hack realizada por dos de los programadores de Facebook: Hack: un nuevo lenguaje de programación para HHVM

Esta fue la historia sobre el desarrollo de Facebook, Amazon tampoco se desarrolló en C ++, sino en C # inicialmente (como dijo Bart Loews en una respuesta a esta pregunta).

Si todavía te tomas en serio el desarrollo de tu aplicación web en C ++ solo por las ganancias de rendimiento, mejor codifícalo en PHP y despliégalo en HHVM o HippyVM (que es 2 veces más rápido que el HHVM de Facebook como afirman los desarrolladores de HippyVM), o puedes considere Java, NodeJs, Go o Scala.

¡No lo implementas!
Por supuesto, tiene algunos marcos web C / C ++, pero no directamente en una página web.
Puede aprovechar C usando CGI, disponible para muchos lenguajes, desde Perl hasta PHP.

A medida que la tecnología mejora, aparecen nuevos idiomas. Sacrifican el rendimiento por la legibilidad.
Su código es más fácil de escalar y mantenerlo cuerdo. Ruby (sobre rieles), es decir

Facebook usa PHP como Frontend, las cosas con las que interactúa y usa la base de datos MySQL.
En el medio, usan la máquina virtual HipHop, también conocida como HHVM o HipHop para abreviar.
HHVM, que es un motor de ejecución basado en compilación just-in-time (JIT) para PHP.
El código PHP ejecutado o Hack se transforma primero en el código de bytes intermedio HipHop (HHBC), que luego se traduce dinámicamente al código de máquina x86-64, optimizado y ejecutado de forma nativa. Esta herramienta fue escrita en C ++.
Pero HHVM solo funciona si usa Hack, un dialecto PHP creado por Facebook.

Puede usar C, o algún dialecto C ++ / C #, para escribir servicios en su aplicación web, dejando el cálculo pesado a estos servicios, usando menos tiempo de CPU y memoria, y enviarlo a su aplicación web como JSON, es decir

Este enfoque es utilizado por MemSQL, una base de datos que compila consultas SQL en C ++ y puede llegar a 80k consultas por segundo que MySQL de 3.5k.

Conozco algunos desarrolladores de Ruby on Rails que comienzan a usar Go Lang para reescribir microservicios, enviarlo como JSON a una base de datos Redis para alimentar a Rails como Frontend. Es el mismo enfoque.

No estoy muy seguro acerca de amazone, pero fb usa un compilador de fuente a fuente llamado hiphop o algunas veces llamado HHVM (también conocido como la máquina virtual HipHop ) para convertir php a c ++ y luego ejecutar ese código. Es una técnica muy buena ya que puede reducir la ejecución tiempo de php de 2 a 20 veces.

pero básicamente se puede usar cualquier lenguaje de programación moderno para hacer servidores web. Simplemente abra el puerto 80 y analice el mime y proporcione respuestas de acuerdo con las solicitudes. Tiene un servidor web. pero las cosas se volverán extremadamente complejas una vez que profundice.

No sé acerca de C ++ pero puedes extender el programa Python a C usando Cython. Básicamente solo necesitas:

  • Codifique la clase usando el estilo Cython
  • Compila la clase
  • Importarlo como otro módulo en Python

Su clase compilada será “casi tan rápida y directa como C” (un testimonio tomado de Cython: C-Extensions for Python).
De esta manera, aún puede manejar el enrutamiento y las cosas web en Python-way feliz, mientras que Cython realiza las tareas pesadas.

PD: Hay varios módulos de extensión C en Python, como PyPy y Cython.

Puedes hacer cualquier sitio web usando C o C ++. El concepto se llama programación cgi, pero el problema con este enfoque es que la mayoría del servidor no admite programas cgi en C y C ++ ya que ambos lenguajes tienen poder para acceder a su hardware directamente. Así obligado a usar php, asp u otros lenguajes de script del lado del servidor.

Como se señaló, FB y Amazon no están codificados principalmente en C ++. Sin embargo, hay una manera de escribir una aplicación para servir páginas web y se llama CGI. Aquí hay un tutorial sobre cómo hacerlo: programación CGI en C / C ++

Por supuesto, Perl y PHP llegaron poco después, ya que desarrollar aplicaciones web usando C / C ++ resulta engorroso.

Facebook está escrito en PHP y Amazon fue, al menos en algún momento, escrito usando .net. ¿De dónde sacas la idea de que están escritos en c ++?

No sé si Amazon y Facebook lo usan, pero aparentemente asmjs permite compilar C ++ en JS: asm.js

Una presentación:
http://kripken.github.io/mloc_emscripten_talk/gindex.html

Anuncio:

Si piensa en los conceptos básicos de cómo funcionan los sitios web, un navegador web del lado del cliente representará HTML desde un servidor HTTP. Su aplicación C ++ necesitará generar código HTML utilizando CGI. CGI es un método estándar utilizado para generar contenido dinámico en páginas web. Los CGI se pueden escribir en cualquier lenguaje de programación.

Creo que estás confundiendo la arquitectura front-end con la back-end. Los front-end del sitio web están compuestos casi por completo de HTML5, CSS3 y JavaScript. No utiliza C ++ en la forma en que lo solicita.

Respuesta corta: lighttpd con fastcgi …