Facebook presenta HipHop, un proyecto que permite transformar php en c++ para poder aumentar el rendimiento de sus sistemas. Según Facebook, el 90% de su tráfico se sirve ahora en código c++ optimizado a partir del php original. El código se hará disponible bajo licencia libre en los próximos días.
#19:
Yo solo le veo un problema a todo esto....
Que se llame hiphop va a crear un problema muy serio en google, los raperos se encontraran tutoriales y los programadores tendran que esquivar a eminem o a violadores del verso entre los resultados.
Puede sonar a broma, pero creo que puede ser un inconveniente y una molestia innecesaria.
#3:
#2 La verdad es que pensar en un traductor de código hace recelar y pensar que el código no puede ser muy bueno o estable. Lo que parece remarcable en este caso es que según el artículo, el 90% del tráfico servido por facebook ya está usando el código generado por este eproyecto. Aunque se vaya a liberar ahora es un código que ha sido probado en uno lo de los sitios con más tráfico de internet.
We are proud to say that at this point, we are serving over 90% of our Web traffic using HipHop
#13:
En otro blog leí un enfoque bastante interesante de este tema. Se supone que PHP es un lenguaje para la web, casi exclusivamente. Esto no quiere decir que no sirva para otras cosas, pero creo que todos estaremos de acuerdo en que no es de propósito general.
Dicho esto, la mejora que propone Facebook les servirá para ahorrar tiempo de CPU, pero en el campo de las aplicaciones web lo que realmente ralentiza el sistema son los tiempos de espera por I/O. Los scripts hacen peticiones a recursos externos como aplicaciones o bases de datos y se quedan esperando la respuesta. Por tanto, el ahorrar CPU no tiene tanto sentido cuando los cuellos de botella están en otros sitios ¿no?
En resumen, esta mejora es más atractiva para el caso concreto de Facebook donde los tiempos de espera por I/O están más optimizados, que para PHP en general.
#6:
buen en representación de la parte de meneame que no estudió ingeniería informática añadiré un:
WHAT THE FUCK!?!??
#5:
#3: Pero esto implica que cada vez que se quiera hacer una modificación del código se haga primero en php y luego se aplique la transformación. Seguro que el codigo generado resultante es casi ilegible.
Lo digo porque lo sufro mis carnes con una herramienta 4GL de IBM que genera java.
#2:
Transformador queda raro, se suelen llamar traductores. En gnome hay un sector que recela de Mono pero que desea un lenguaje de más alto nivel para lo cual han creado los traductores Vala y Genie que generan C desde código similar a C# y Python respectivamente.
El problema de los traductores es que requieren mucho trabajo de mantenimiento así que falta ver hasta que punto resulta estable el código generado.
Yo solo le veo un problema a todo esto....
Que se llame hiphop va a crear un problema muy serio en google, los raperos se encontraran tutoriales y los programadores tendran que esquivar a eminem o a violadores del verso entre los resultados.
Puede sonar a broma, pero creo que puede ser un inconveniente y una molestia innecesaria.
#23 El reggaeton ya es chungo de buscar por si solo. Alguna vez que he tenido que bajar algo para mi hermana me las he visto y deseado... "Reggaeton, reggeton, regueton, requeson?"
#19 por suerte los programadores sabemos usar varias opciones de google, como el evitar palabras en la busqueda:
hiphop -music -eminem -eminem -EMINEM!
#27#31 Ing. Informática es la única carrera donde se tocan esos temas en la troncalidad, lo que no quita para que tú puedas pillar bibliografía, leerte el código de GCC o lo que sea y convertirte en un experto. Pero eso no sólo pasa en informática, pasa con cualquier otra carrera.
Si os interesa el temas os recomiendo el libro del dragón, un libro digno de tener en el mejor mueble de tu casa. Si queréis algo más asequible os recomiendo mirar ANTLR que tiene un libro que no presupone conocimiento de teoría de autómatas, lo cual por cierto, también se da en la carrera.
#46 ¿En el PRS-505 ves bien los libros técnicos? Es que estoy con ganas de hacerme con uno pero tengo la duda de si basta con un e-book normal o necesitaría un DX.
#50 Depende de cómo tengas ajustado el tamaño de la fuente, en qué formato cargues el documento o con qué aplicación lo conviertas a LRF (solo si lo crees más conveniente).
Pero si quieres un lector de ebooks en el que se pueda leer muy bien esquemas, gráficos, y demás cosas (supongo que con eso te referirás a '_libros_ técnicos') te recomiendo un lector de ebooks con más de 6" de pantalla, como por ejemplo el Kindle DX. Supongo que habrá modelos de otras marcas con una pantalla igual de grande que la del Kindle DX, pero desconozco cuál te convendría más por características y precio.
Te recomiendo que mires en http://www.zonaebook.com o preguntes en los foros y ahí te podrán ayudar mejor.
En otro blog leí un enfoque bastante interesante de este tema. Se supone que PHP es un lenguaje para la web, casi exclusivamente. Esto no quiere decir que no sirva para otras cosas, pero creo que todos estaremos de acuerdo en que no es de propósito general.
Dicho esto, la mejora que propone Facebook les servirá para ahorrar tiempo de CPU, pero en el campo de las aplicaciones web lo que realmente ralentiza el sistema son los tiempos de espera por I/O. Los scripts hacen peticiones a recursos externos como aplicaciones o bases de datos y se quedan esperando la respuesta. Por tanto, el ahorrar CPU no tiene tanto sentido cuando los cuellos de botella están en otros sitios ¿no?
En resumen, esta mejora es más atractiva para el caso concreto de Facebook donde los tiempos de espera por I/O están más optimizados, que para PHP en general.
#13 no tiene por qué ser así. En el video (www.ustream.tv/recorded/4409735) Haiping (que creo que es el desarrollador principal) comenta que obtienen un 50% de beneficio (CPU) comparando con php + memcache (o apc, ya no recuerdo), que en principio se ocupará de mantener una cache de la BD (pq es un poco inocente pensar que cada visita que haces a facebook acaba haciendo consultas a la BD en vez de recoger los datos de una de las múltiples capas de cache (memcache, proxys, caches de la BD, ...)).
Otra cosa que cuenta en ese 50% de beneficio es que comparaban PHP sobre apache a HipHop sobre su propio servidor web, ya que no necesitan muchas cosas de las que da apache (y de hecho esperan que la comunidad sea la que haga el módulo de HipHop para ejecutarse en apache, ya que de momento son incompatibles).
#12 se especula que el nombre viene de Hyper PHP (o Haiping's PHP) => HPHP => HipHop (más letras, pero más fácil de pronunciar).
#7 efectivamente HipHop siempre irá (o almenos durante un tiempo) por detrás de PHP. Lo que han liberado esta tarde funciona con PHP 5.2, pero no con PHP 5.3. Hasta que Zend no tome el desarrollo de HipHop (si ocurre algún día, cosa que nadie espera hoy por hoy), éste siempre estará por detrás de las últimas versiones de PHP
Transformador queda raro, se suelen llamar traductores. En gnome hay un sector que recela de Mono pero que desea un lenguaje de más alto nivel para lo cual han creado los traductores Vala y Genie que generan C desde código similar a C# y Python respectivamente.
El problema de los traductores es que requieren mucho trabajo de mantenimiento así que falta ver hasta que punto resulta estable el código generado.
#2 La verdad es que pensar en un traductor de código hace recelar y pensar que el código no puede ser muy bueno o estable. Lo que parece remarcable en este caso es que según el artículo, el 90% del tráfico servido por facebook ya está usando el código generado por este eproyecto. Aunque se vaya a liberar ahora es un código que ha sido probado en uno lo de los sitios con más tráfico de internet.
We are proud to say that at this point, we are serving over 90% of our Web traffic using HipHop
#3: Pero esto implica que cada vez que se quiera hacer una modificación del código se haga primero en php y luego se aplique la transformación. Seguro que el codigo generado resultante es casi ilegible.
Lo digo porque lo sufro mis carnes con una herramienta 4GL de IBM que genera java.
#5 Pero es que en el caso de los generadores activos el hecho de que el código final sea ilegible es irrelevante. Tú en principio no tienes que tocar ese código final para nada, piénsalo como si fuera código binario, a parte de los crackers poca gente se pone a tocar código binario.
El objetivo es que ese código resultante sea válido y estable, que es la duda que a mí me queda porque tal y como tú dices, cada vez que Zend saque una versión nueva de php, este generador estará por detrás.
#32: no, compilador es cuando conviertes codigo en codigo
un traductor es un tipo de compilador, pero llamarlo compilador esta bien dicho
de hecho en el propio link que has puesto lo explica:
"A compiler is a computer program (or set of programs) that transforms source code written in a computer language (the source language) into another computer language (the target language, often having a binary form known as object code). "
y luego especifica:
"The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a lower level language"
en este caso se dan las dos condiciones porque el codigo resultante es de mas bajo nivel, pero aunque no lo fuera seguiria siendo un compilador. no hace falta que genere codigo maquina
#35: estas haciendo un cursillo de "unix para tontos" o algo?
en fin, encima que intento explicarte como funciona... a ver si nos educamos un poco, que ya se que aqui todos sois informaticos de sillon pero algunos hemos acabado una carrera y sabemos de lo que hablamos
#34#36 Mira, no sé para qué me estoy molestando en contestar dada tu falta de respeto pero bueno.
"a ver si leemos un poquito"
Tú mucho me parece que tampoco lees.
En el link del que has pegado trozos también pone :
A program that translates between high-level languages is usually called a language translator, source to source translator, or language converter
A program that translates between high-level languages is usually called a language translator, source to source translator, language converter, or language rewriter. The last term is usually applied to translations that do not involve a change of language.
". a ver si nos educamos un poco, que ya se que aqui todos sois informaticos de sillon pero algunos hemos acabado una carrera y sabemos de lo que hablamos "
¿Nos conocemos? ¿A qué viene esa suposición? Estoy harto de gente como tú que se cree que en internet se puede tratar a gente que ni conoces de cualquier manera. Menos confianzas.
#39: al final va a ser que no sabes mucho ingles... te repito, del link que pusiste tu mismo:
"The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a lower level language"
PHP a C++ es de un lenguaj de alto nivel a otro de mas bajo nivel, por tanto segun la deficion de la wikipedia seria un compilador
de todos modos, compilador y traductor son basicamente lo mismo, se pueden usar como sinonimos en muchos casos.
A program that translates between high-level languages is usually called a language translator, source to source translator, or language converter
A program that translates between high-level languages is usually called a language translator, source to source translator, language converter, or language rewriter. The last term is usually applied to translations that do not involve a change of language.
Y sino mira la noticia del meneo:
"HipHop for PHP isn't technically a compiler itself. Rather it is a source code transformer"
Si quieres discutes con ellos también que seguro que sabes más de teoría de compiladores.
PHP es un lenguaje de alto nivel y C++ también.
"al final va a ser que no sabes mucho ingles" Que pesado eres con esos comentarios gratuitos, ¿no te lo han dicho en casa? Sobran completamente.
Programar bajo php, un lenguaje mas amigable, sin dolor de cabeza por los tipos de datos y convertir a c++, obteneniendo mejor rendimiernto. Algo asi como el CLI de .NET pero con lenguajes de primera. Un garbage colector decente para c++ y adiós .NET y Java
El código de servidor siempre se tiene que ejecutar dentro de una máquina virtual, esta es una lección aprendida por lenguajes como Java o Erlang desde hace años. La razón son las excepciones o situaciones imprevistas, que en código de servidor son extremadamente comunes y desde luego no quieres que se te caiga el servidor por alguna de ellas, aún a costa de sacrificar en rendimiento...
En servidor es más importante de disponibilidad que el rendimiento. Supongo que Facebook se puede permitir ejecutar código C++ por que basan la alta disponibilidad en cientos o miles de servidores trabajando en alta disponibilidad. No todo el mundo se lo puede permitir.
#0 cuando a tí te da por hablar de facebook, de lo guay que es y la de cosas que tiene, yo te hablo de gnewbook y de lo libre que es, que a fin de cuentas es lo único que me importa: no ser una esclava, ni privatizar internet.
#25 Qué decepción. A pesar de contar con la bendición del sumo profeta Stallman, no es más que una red social prefabricada (elgg) y modificada. Yo me esperaba algo hecho '_from_ scratch', como dicen los yanquis.
#52 A mí también me gusta que sea libre, no he dicho lo contrario ni estoy etiquetando a gnewbook de nada. Solo he comentado que me ha decepcionado algo el pensar que han cogido algo prefabricado y lo han hecho a partir de ahí, en vez de empezarlo de cero y ofrecer una alternativa libre más.
#56 te entiendo, pero también les entiendo a ellos. ¿porqué empezar de cero? uno no puede salvar al mundo desde cero, y la filosofía GNU parte de aprovechar todos los recursos ya libres, creo.
de alguna manera es lógico. Sinó gasta el doble de tus fuerzas y ahora mismo no andan sobrados....
#17 Me refiero a que al usar eso, y después un compliador de C++ (no creo que lo quieran para ver lo bonito que es el código en C++), obtienes lo mismo que si compilases el PHP de forma que obtuvieras un código muy eficiente para ese lenguaje, así que es como un supercompliador el conjunto hiphop + g++ (p.e.). El como es importante porque da idea de que no es una definición ni mucho menos rigurosa.
Facebook utiliza el Zend Framework, es una plataforma muy pesada y lenta aunque sea robusta. El codeigniter lo supera por mucho mas en cuanto al rendimiento por casi 3 veces lo que consume Zend Framework.
Lo que si es cierto, es que hacer que esto funcione es complicado. Cualquiera que sepa algo de traductores (compiladores) sabrá que es más eficiente computacionalmente hablando trabajar en ensamblador que trabajar en c++ aunque obviamente no es nada practico. El proceso de traducción de c++ a código máquina una vez obtenido el árbol semántico es bastante complejo y dependiente de la máquina y nunca llega a ser tan eficiente ya que se crea a veces código de más. En este caso pasara lo mismo y peor ya que hablamos de un lenguaje orientado a objetos convertido a otro lenguaje orientado a objetos. Pero vamos no puedo predecir el trabajo de la gente de facebook pero puede ser una buena iniciativa si sale bien y hay de verdad grandes diferencias (entre el rendimiento de correr php en el servidor o c++)
Comentarios
Yo solo le veo un problema a todo esto....
Que se llame hiphop va a crear un problema muy serio en google, los raperos se encontraran tutoriales y los programadores tendran que esquivar a eminem o a violadores del verso entre los resultados.
Puede sonar a broma, pero creo que puede ser un inconveniente y una molestia innecesaria.
Con ese nombre seguro que vienen los de Universal a joderlo, o por lo menos aqui en España.
#19 Cierto
#19 Tienes toda la razón pero podría ser peor, lo podrían haber llamado regueton.
#23 El reggaeton ya es chungo de buscar por si solo. Alguna vez que he tenido que bajar algo para mi hermana me las he visto y deseado... "Reggaeton, reggeton, regueton, requeson?"
#19 por suerte los programadores sabemos usar varias opciones de google, como el evitar palabras en la busqueda:
hiphop -music -eminem -eminem -EMINEM!
#19 ¿Tanto te cuesta buscar "hiphop php" o "hiphop eminem"?
La gente se ahoga en un vaso de agua.
buen en representación de la parte de meneame que no estudió ingeniería informática añadiré un:
WHAT THE FUCK!?!??
#6 Yo tampoco tengo una ingeniería informática, pero no creo que haga falta una ingenería para entenderlo.
Aunque todo sea dicho, desconocía que existieran 'traductores'. Me parece una propuesta muy interesante.
#27 De hecho para crear algo como esto tampoco hace falta una ingeniería informática.
#27 #31 Ing. Informática es la única carrera donde se tocan esos temas en la troncalidad, lo que no quita para que tú puedas pillar bibliografía, leerte el código de GCC o lo que sea y convertirte en un experto. Pero eso no sólo pasa en informática, pasa con cualquier otra carrera.
Si os interesa el temas os recomiendo el libro del dragón, un libro digno de tener en el mejor mueble de tu casa. Si queréis algo más asequible os recomiendo mirar ANTLR que tiene un libro que no presupone conocimiento de teoría de autómatas, lo cual por cierto, también se da en la carrera.
#33 Cierto, el libro rojo o algo así creo que lo llaman también. Un tocho de aproximadamente 900 y pico páginas. Mááááma.
#31 Ya ves, Gates y Jobs se hicieron multimillonarios sin ningún título y sin terminar la universidad.
#33 Pues sí, en esto de la informática todo no es más que coger y ponerse. Todo lo demás es titulitis y abrirse puertas (cosa que tampoco está mal).
Gracias por las recomendaciones. A ver si los encuentro en formato ebook y los meto en mi PRS-505.
#46 ¿En el PRS-505 ves bien los libros técnicos? Es que estoy con ganas de hacerme con uno pero tengo la duda de si basta con un e-book normal o necesitaría un DX.
#50 Depende de cómo tengas ajustado el tamaño de la fuente, en qué formato cargues el documento o con qué aplicación lo conviertas a LRF (solo si lo crees más conveniente).
Pero si quieres un lector de ebooks en el que se pueda leer muy bien esquemas, gráficos, y demás cosas (supongo que con eso te referirás a '_libros_ técnicos') te recomiendo un lector de ebooks con más de 6" de pantalla, como por ejemplo el Kindle DX. Supongo que habrá modelos de otras marcas con una pantalla igual de grande que la del Kindle DX, pero desconozco cuál te convendría más por características y precio.
Te recomiendo que mires en http://www.zonaebook.com o preguntes en los foros y ahí te podrán ayudar mejor.
Detalles técnicos del Kindle DX: http://www.zonaebook.com/index.php?module=dpDocs&func=view&mid=25
En otro blog leí un enfoque bastante interesante de este tema. Se supone que PHP es un lenguaje para la web, casi exclusivamente. Esto no quiere decir que no sirva para otras cosas, pero creo que todos estaremos de acuerdo en que no es de propósito general.
Dicho esto, la mejora que propone Facebook les servirá para ahorrar tiempo de CPU, pero en el campo de las aplicaciones web lo que realmente ralentiza el sistema son los tiempos de espera por I/O. Los scripts hacen peticiones a recursos externos como aplicaciones o bases de datos y se quedan esperando la respuesta. Por tanto, el ahorrar CPU no tiene tanto sentido cuando los cuellos de botella están en otros sitios ¿no?
En resumen, esta mejora es más atractiva para el caso concreto de Facebook donde los tiempos de espera por I/O están más optimizados, que para PHP en general.
#13 no tiene por qué ser así. En el video (www.ustream.tv/recorded/4409735) Haiping (que creo que es el desarrollador principal) comenta que obtienen un 50% de beneficio (CPU) comparando con php + memcache (o apc, ya no recuerdo), que en principio se ocupará de mantener una cache de la BD (pq es un poco inocente pensar que cada visita que haces a facebook acaba haciendo consultas a la BD en vez de recoger los datos de una de las múltiples capas de cache (memcache, proxys, caches de la BD, ...)).
Otra cosa que cuenta en ese 50% de beneficio es que comparaban PHP sobre apache a HipHop sobre su propio servidor web, ya que no necesitan muchas cosas de las que da apache (y de hecho esperan que la comunidad sea la que haga el módulo de HipHop para ejecutarse en apache, ya que de momento son incompatibles).
#12 se especula que el nombre viene de Hyper PHP (o Haiping's PHP) => HPHP => HipHop (más letras, pero más fácil de pronunciar).
#7 efectivamente HipHop siempre irá (o almenos durante un tiempo) por detrás de PHP. Lo que han liberado esta tarde funciona con PHP 5.2, pero no con PHP 5.3. Hasta que Zend no tome el desarrollo de HipHop (si ocurre algún día, cosa que nadie espera hoy por hoy), éste siempre estará por detrás de las últimas versiones de PHP
Quien no conoce Python está condenado a reinventarlo... mal
Transformador queda raro, se suelen llamar traductores. En gnome hay un sector que recela de Mono pero que desea un lenguaje de más alto nivel para lo cual han creado los traductores Vala y Genie que generan C desde código similar a C# y Python respectivamente.
El problema de los traductores es que requieren mucho trabajo de mantenimiento así que falta ver hasta que punto resulta estable el código generado.
#2 La verdad es que pensar en un traductor de código hace recelar y pensar que el código no puede ser muy bueno o estable. Lo que parece remarcable en este caso es que según el artículo, el 90% del tráfico servido por facebook ya está usando el código generado por este eproyecto. Aunque se vaya a liberar ahora es un código que ha sido probado en uno lo de los sitios con más tráfico de internet.
We are proud to say that at this point, we are serving over 90% of our Web traffic using HipHop
#3: Pero esto implica que cada vez que se quiera hacer una modificación del código se haga primero en php y luego se aplique la transformación. Seguro que el codigo generado resultante es casi ilegible.
Lo digo porque lo sufro mis carnes con una herramienta 4GL de IBM que genera java.
#5 Pero es que en el caso de los generadores activos el hecho de que el código final sea ilegible es irrelevante. Tú en principio no tienes que tocar ese código final para nada, piénsalo como si fuera código binario, a parte de los crackers poca gente se pone a tocar código binario.
El objetivo es que ese código resultante sea válido y estable, que es la duda que a mí me queda porque tal y como tú dices, cada vez que Zend saque una versión nueva de php, este generador estará por detrás.
#2, #17: se llama compilador
#30 No, compilador se llama cuando el resultado es código de bajo a nivel. Sería un compilador si en lugar de C++ generara código máquina.
http://en.wikipedia.org/wiki/Compiler
#32: no, compilador es cuando conviertes codigo en codigo
un traductor es un tipo de compilador, pero llamarlo compilador esta bien dicho
de hecho en el propio link que has puesto lo explica:
"A compiler is a computer program (or set of programs) that transforms source code written in a computer language (the source language) into another computer language (the target language, often having a binary form known as object code). "
y luego especifica:
"The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a lower level language"
en este caso se dan las dos condiciones porque el codigo resultante es de mas bajo nivel, pero aunque no lo fuera seguiria siendo un compilador. no hace falta que genere codigo maquina
a ver si leemos un poquito
#34 "a ver si leemos un poquito"
/dev/null
#35: estas haciendo un cursillo de "unix para tontos" o algo?
en fin, encima que intento explicarte como funciona... a ver si nos educamos un poco, que ya se que aqui todos sois informaticos de sillon pero algunos hemos acabado una carrera y sabemos de lo que hablamos
#36 > /dev/null
#36 no hace falta terminar una carrera para ser agradecido, reconocer los errores propios y querer aprender.
#34 #36 Mira, no sé para qué me estoy molestando en contestar dada tu falta de respeto pero bueno.
"a ver si leemos un poquito"
Tú mucho me parece que tampoco lees.
En el link del que has pegado trozos también pone :
A program that translates between high-level languages is usually called a language translator, source to source translator, or language converter
A program that translates between high-level languages is usually called a language translator, source to source translator, language converter, or language rewriter. The last term is usually applied to translations that do not involve a change of language.
". a ver si nos educamos un poco, que ya se que aqui todos sois informaticos de sillon pero algunos hemos acabado una carrera y sabemos de lo que hablamos "
¿Nos conocemos? ¿A qué viene esa suposición? Estoy harto de gente como tú que se cree que en internet se puede tratar a gente que ni conoces de cualquier manera. Menos confianzas.
#39: al final va a ser que no sabes mucho ingles... te repito, del link que pusiste tu mismo:
"The name "compiler" is primarily used for programs that translate source code from a high-level programming language to a lower level language"
PHP a C++ es de un lenguaj de alto nivel a otro de mas bajo nivel, por tanto segun la deficion de la wikipedia seria un compilador
de todos modos, compilador y traductor son basicamente lo mismo, se pueden usar como sinonimos en muchos casos.
#40
Y te repito yo también del mismo link.
A program that translates between high-level languages is usually called a language translator, source to source translator, or language converter
A program that translates between high-level languages is usually called a language translator, source to source translator, language converter, or language rewriter. The last term is usually applied to translations that do not involve a change of language.
Y sino mira la noticia del meneo:
"HipHop for PHP isn't technically a compiler itself. Rather it is a source code transformer"
Si quieres discutes con ellos también que seguro que sabes más de teoría de compiladores.
PHP es un lenguaje de alto nivel y C++ también.
"al final va a ser que no sabes mucho ingles" Que pesado eres con esos comentarios gratuitos, ¿no te lo han dicho en casa? Sobran completamente.
#41: paso de seguir explicandotelo, ya veo que no te entra
no pasa nada, seguro que hay otras cosas que tu si sabes hacer y yo no - no te deprimas por esto
#42 Explícaselo también a los de facebook anda.
Esto es parecido a los parsers en XML??
#41 calificar C++ de lenguaje de alto nivel es cuanto menos osado.
#41 Aun así estoy contigo en que si que es un traductor entre 2 lenguajes, y no un compilador.
Programar bajo php, un lenguaje mas amigable, sin dolor de cabeza por los tipos de datos y convertir a c++, obteneniendo mejor rendimiernto. Algo asi como el CLI de .NET pero con lenguajes de primera. Un garbage colector decente para c++ y adiós .NET y Java
#1 Un garbage colector decente para c++ y adiós .NET y Java
Existe el shared_ptr para eso, ¿no te parece decente?
El código de servidor siempre se tiene que ejecutar dentro de una máquina virtual, esta es una lección aprendida por lenguajes como Java o Erlang desde hace años. La razón son las excepciones o situaciones imprevistas, que en código de servidor son extremadamente comunes y desde luego no quieres que se te caiga el servidor por alguna de ellas, aún a costa de sacrificar en rendimiento...
En servidor es más importante de disponibilidad que el rendimiento. Supongo que Facebook se puede permitir ejecutar código C++ por que basan la alta disponibilidad en cientos o miles de servidores trabajando en alta disponibilidad. No todo el mundo se lo puede permitir.
#15 30.000 servidores creo que se dijo hace tiempo.
Pues nada, si es libre, bienvenido sea. Se probará y al que le sirva, que lo use
Alguien sabe porqué lo han llamado así?
Me resulta bastante interesante, me encanta PHP como lenguaje para le web, si además se puede incrementar su potencia mejor que mejor.
Señoras que usan HipHop de after y tienen el pelo violeta
#0 cuando a tí te da por hablar de facebook, de lo guay que es y la de cosas que tiene, yo te hablo de gnewbook y de lo libre que es, que a fin de cuentas es lo único que me importa: no ser una esclava, ni privatizar internet.
http://www.gnewbook.org/
#25 Qué decepción. A pesar de contar con la bendición del sumo profeta Stallman, no es más que una red social prefabricada (elgg) y modificada. Yo me esperaba algo hecho '_from_ scratch', como dicen los yanquis.
#28 cojonudo que te limites a clasificar gnewbook, pero mira, a mí lo que me importa es que es libre, por encima de todas las etiquetas que le pongas.
#52 A mí también me gusta que sea libre, no he dicho lo contrario ni estoy etiquetando a gnewbook de nada. Solo he comentado que me ha decepcionado algo el pensar que han cogido algo prefabricado y lo han hecho a partir de ahí, en vez de empezarlo de cero y ofrecer una alternativa libre más.
#56 te entiendo, pero también les entiendo a ellos. ¿porqué empezar de cero? uno no puede salvar al mundo desde cero, y la filosofía GNU parte de aprovechar todos los recursos ya libres, creo.
de alguna manera es lógico. Sinó gasta el doble de tus fuerzas y ahora mismo no andan sobrados....
#17 Me refiero a que al usar eso, y después un compliador de C++ (no creo que lo quieran para ver lo bonito que es el código en C++), obtienes lo mismo que si compilases el PHP de forma que obtuvieras un código muy eficiente para ese lenguaje, así que es como un supercompliador el conjunto hiphop + g++ (p.e.). El como es importante porque da idea de que no es una definición ni mucho menos rigurosa.
No quiero imaginarme el infierno que tiene que ser crear un transformador(traductor, diría yo) de código ...
Relacionada: ¿Cuántos servidores se podría ahorrar Facebook con C++?
¿Cuántos servidores se podría ahorrar Facebook con...
sigt.netEs como un super compilador de PHP, ¿no?
#14 no, en todo caso es un super traductor de PHP a C++
ya tardaba, parece que todo hilo de informáticos acaba convirtiendose en ver quien la tiene mas larga
Facebook utiliza el Zend Framework, es una plataforma muy pesada y lenta aunque sea robusta. El codeigniter lo supera por mucho mas en cuanto al rendimiento por casi 3 veces lo que consume Zend Framework.
http://avnetlabs.com/php/php-framework-comparison-benchmarks
Dicen q uno de los obstaculos del codeigniter es q utiliza PHP 4, ahora en la version actual ya usa PHP 5 =).
Salu2
#54 No
Joder, algo así pero a nivel universal estoy seguro de que nos hubiera venido de perlas a todos
Lo que si es cierto, es que hacer que esto funcione es complicado. Cualquiera que sepa algo de traductores (compiladores) sabrá que es más eficiente computacionalmente hablando trabajar en ensamblador que trabajar en c++ aunque obviamente no es nada practico. El proceso de traducción de c++ a código máquina una vez obtenido el árbol semántico es bastante complejo y dependiente de la máquina y nunca llega a ser tan eficiente ya que se crea a veces código de más. En este caso pasara lo mismo y peor ya que hablamos de un lenguaje orientado a objetos convertido a otro lenguaje orientado a objetos. Pero vamos no puedo predecir el trabajo de la gente de facebook pero puede ser una buena iniciativa si sale bien y hay de verdad grandes diferencias (entre el rendimiento de correr php en el servidor o c++)