922
"Recientemente Facebook nos facilito algo de información acerca de su parque de servidores. Usan unos 30.000 servidores y, sin sorpresa alguna, muchos de ellos están usando código PHP para generar páginas llenas de información social para sus usuarios. Ya que sólo dicen que una mayoría está ejecutando PHP, asumamos que son 25.000 de los 30.000 que usan."
menéame
Como dice #2 si se programa en ensamblador se ahorrarian todavia muchos mas servidores pero... la fecha de entrega para cuando? para el 2200?
#8 Con ensamblador no se ahorrarían mucho. Para hacer ensamblador verdaderamente optimizado es necesario conocer detalles profundos de la arquitectura del procesador (que varían en cada versión del procesador) que solo los compiladores pueden hacer. Quitando optimizaciones muy específicas, programar en ensamblador es estúpido teniendo a mano un "ensamblador portable" como lo es C...
"Go : a systems programming language".
Y si lees un poco la historia del proyecto verás que la necesidad que intenta cubrir es la complejidad que supone la programación de sistemas en general y la multiprogramación en particular.
Como dices, hoy en día es estúpido programar en ensamblador salvo en lugares muy concretos y como dicen en los comentarios facebook seguramente use modulos de php escritos en C++ que se encarguen de las tareas más pesadas y donde se vaya a notar el rendimiento.
Lo que no entiendo es por qué dices que C es un "ensamblador portable". El lenguaje C es tan "ensamblador portable" como lo es PHP o cualquier otro lenguaje, al fin y al cabo todo termina convertido en codigo ensamblador. (porque supongo que no te referías a que puedes meter código ensamblador dentro de un programa en C)
meneame.net/story/diez-grupos-privacidad-demandan-facebook
Cualquier dia programarán los codecs de video en Visual Basic y para ver una peli medio decente necesitarás una cpu de 800 cores, pero no importa , porque estarán baratos...¿no?
La mayoria de las veces no se ponen mas servidores para aumentar la capacidad de cpu, sino para incrementar la cola del puerto 80. Estoy convencido de que los servidores web de facebook no consumen mas de 25% de cpu.
Pringaos....
M-x butterfly
C++ -> 3 caracteres
¿Donde está el ahorro?
</chiste fácil>
Creo que la sola proposición de hacer trabajar servidores (web) bajo C++ no tiene fundamento alguno.
Palabras clave como 'register' o 'volatile' creo que lo hacercan al hardware más que ningún otro lenguaje.
C++ es un buen lenguaje para dispararse en el pie con mucho estilo.
Es más sencillo de mantener y el rendimiento es aceptable.
¿Más preguntas?
La denominación de esamblador portable, me suena un poco rara.
C es una lenguaje compilado y por tanto una vez traducido y una vez "compilado" (valga la redundancia) y linkado es cuando código ha sido traducido al lenguaje de la máquina.
Realmente no podría asegurar si la calidad del ejecutable es cuestión del código o cuestión del compilador/linkador.
En cuando a lo que se puede hacer en C y no se puede hacer con otros lenguajes, te quedarías sorprendido.
Precisamente, hace muchísimos años, ya se podía en Basic introducir directamente en memoria ram o vram datos con los comandos Poke y Vpoke. Y por abundar mas en el asunto, otro grandioso lenguaje que es Delphi (Object Pascal), que permite introducir líneas de código ASM con una simple directiva, con todo lo que ello representa....
La mayoría del tiempo de generación se lo llevan los accesos a la base de datos y los motores de plantillas. Esto hubiera sido así también con C++, con C y con ensamblador. Así de claro.
Además PHP ya cuenta desde hace tiempo con un compilador JIT (ZendEngine, que viene de serie con PHP) y se le pueden agregar OPCode caching (XCache, APC, ...), que hace que se tenga la versión JIT compilada en memoria todo el tiempo. Al final todo esto puede terminar en que la aplicación en C++ sea más lenta.
Y a los que dicen que, sabiendo C++ pa' que usar PHP, pues muy facil: la mejor herramienta para el trabajo dado. Señores, ni el mismísimo John Carmack escribiría su pagina personal en C++. Tendrías que reescribir todas las ruedas, ya sean DAOs, motores de plantillas, etc etc. Menuda pesadilla. Cosas que ya están implementadas mil veces en PHP y puedes usar la que más te guste.
Un poquito de porfavor.
Yo voto por ensamblador.
(Por cierto, echan más CO2 los clientes de Facebook, que los servidores).
Las metodologías sirven para algo, a todos estos que defendeis tanto el C o ensamblador os pondremos un teclado con dos teclas, 0 y 1, así que todos a programas instrucciones en código máquina...
Y una mierda, ¿tú sabes la cantidad de gases media que emite cada uno de esos programadores?
Que sea "más difícil" de programar es solo algo subjetivo. Llevo más de 10 años programando en C++, y cada vez estoy más convencido de que es el lenguaje de programación por excelencia, solo por detrás de C que se debería dejar para cosas de bajo nivel (i.e. el Kernel Linux). Con C++ se puede hacer lo que queráis, y sin sacrificar ser multi-plataforma: solo es cuestión de usar las librerías adecuadas y programar bien, sin hacer burradas.
Esto lo digo sobre todo por los supuestos "lenguajes de referencia" Java, .NET, etc... y aunque en menos parte, también por PHP, Python, Go y family.
¿Que el manejo de memoria dinámica es un coñazo en C++? -> Usad smart pointers, y será mil veces más eficiente que cualquier garbage collector.
¿Que C++ no viene de serie con soporte de base de datos, internet, etc...? -> Hay cientos de librerías gratuitas y open source para la plataforma que queráis.
¿Alguien sabe explotar realmente bien la STL y las templates? -> Poquisimos lenguajes tienen esas herramientas tan potentes.
Ale, ya he evangelizado por hoy!
PHP en cuanto reciba los datos de la BD apenas tardará unos milisegundos en procesar toda la página. Es más preocupante la memoria que consume cada proceso o thread de Apache (o el servidor web que sea) y el uso del disco duro de la BD que no el proceso de la propia página, que muchas veces está cacheada o semicacheada además de tener el código precompilado en bytecode usando APC o similares.
La ganancia de rendimiento haciendo la aplicación en C++ sería mínima, los problemas de eficiencia en términos de recursos humanos serían mucho mayores.
Si se hubiera usado C++ el proyecto tendría tanto que hacerse que nunca abría despegado, por consiguiente solo usarían un servidor .... hummm... oooh wait!!!!
¿cuanto cobra un buen programador de C++ (poca oferta en el mercado)?
¿Cuanto cobra un buen programador de PHP (mucha oferta en el mercado)?
¿cuantos programadores de C++ necesitamos?
¿cuantos programadores de PHP necesitamos?
(¿Es igual la productividad de los dos lenguajes?)
¿cuanto paga facebook por esos servidores que sobran?
¿Cuantos progrmadores de C++ necesitamos para hacer facebook en 1 año?
¿Cuantos progrmadores de C++ necesitamos para hacer facebook en 1 año?
Recuerde: Una mujer da a luz en 9 meses pero 9 mujeres no dan a luz en 1 mes
complete los datos, introduzca los riesgos de cada perfil de programador y calcule costes para ambos proyectos
bonus: ¿estime costes de mantenimiento para ambos proyectos?
De media si
El código PHP se introduce dentro de ficheros de texto plano que apenas ocupan unos Kb... creo que este artículo es un poco exagerado.
Aunque estoy de acuerdo contigo en una cosa, es un artículo un poco [bastante] exagerado.
COBOL Rules!!!!!
Total, que al final acabarás con un nuevo y flamante lenguaje interpretado, que gasta más de "si lo hicieras sólo en C++"
Eso si, con una eficiencia energética del 99%
Por lo que leí usaban Pentiums II y basicamente, deshechos y cosas asi, y los tenian en containers de barcos con una ventilacion eficiente
Porque Pentiums II y III? porque no consumen un cagao (mi primer Pentium III no tenia ni ventilador) y si se estropean, pues mala suerte, pero la inversion ha sido pekeña
Recordemos que cuando Google empezó en Standford tenian que andar lloriqueando por ordenadores por los departamentos
- Yo lo haría con ANSI C en una Debian bla bla bla...
- Es mejor con ensamblador porque más a bajo nivel es más de auténticos programadores bla bla bla...
- Pues yo le pondría un megacluster de Nintendo DS con un linux mínimo y tal...
Se ve que nadie tiene muy en cuenta 2 factores:
- La vida real
- El dinero
Por favor, es fácil opinar, pero para decir burradas como lo de implementar FB en C++ es mejor estar calladito.
Cuando dispones de un tiempo limitado tiras de programas que te dan funciones mucho mas simplificadas, de forma que el coste de de hacer una modificación o el mantenimiento sea muy bajo, porque señores el tiempo es oro.
Porque se usan PHP, ASP.NET, etc? son lenguajes mucho mas cercanos al humano.
Con python da gusto programar... supera eso C++!
PD: Rompo una lanza a favor de java: tan pesado no sera si funciona en casi todos los moviles... Pero claro, si cojemos como 'eemplos de codigo java' las MIERDAS que se hacen por aqui....
Si en las TIs españolas se programara en C las aplicaciones web serian mas lentas, sin ninguna duda.
Cuando llegue podremos opinar, pero hay que dejar de vivir de las leyendas urbanas.
En fin... la falacia del martillo de oro es.wikipedia.org/wiki/Martillo_de_oro
Para todo lo demás, programadores-del-pleistoceno®
te equivocas, yo no lo digo en ese sentido...
Solo lo digo pq me encanta programar python... Cuando lo coges recuerdas pq siempre te ha gustado eso de el codigo... encuentras de nuevo la BELLEZA...
A mi es que lo que se hace con python me parece arte -aunque si, he visto codigo de MIERDA tb en python-
No digo que valga para todo ni que se deba usar en todas las circusntancias... pero yo lo hago siempre que puedo... solo pq es una gozada... y eso no lo supera C++!!!
Podría seguir horas hablando de temas mas técnicos, pero diré simplemente yo no vuelo a poner un puto punto-y-coma en mi vida. Python esta a años luz de todo y quien no lo vea es que se ha apoltronado en viejas costumbres.
Siempre me acuerdo de XKCD cuando sale este tema: es.xkcd.com/xkcd-es/strips/python/
Por eso son interesantes aquellas alternativas que combinan la productividad de PHP, .Net o Java, con la eficiencia de C. Como apunta #2.
Y ahora... me voy a acabar la jodida práctica de compiladores...
Los resultados de rendimiento son más que esperanzadores.
tiempo de ejecución: 1 mes
Recursos: 9 mujeres fértiles
multa por mes de retraso XXXXXXXXXXXXXXXXXXXX mil
fíate tu de las medias
mujer 1 - 9 meses
mujer 2 - 9 meses
mujer 3 - 8 meses
mujer N - 9 meses
media = 9 meses