EDICIóN GENERAL
386 meneos
 
La Ley de Page: El software dobla su lentitud cada 18 meses (ING)

La Ley de Page: El software dobla su lentitud cada 18 meses (ING)  

Sergey Brin, cofundador de Google, lanzó hoy en la conferencia de desarrolladores en San Francisco una nueva nomenclatura para la jerga de la cultura de los programadores: "La Ley de Page", en referencia al otro cofundador Larry Page. En contraposición al aforismo técnico de la Ley de Moore (los ordenadores duplican su velocidad cada uno o dos años)*, la Ley de Page es su inverso: el software dobla su lentitud cada 18 meses. Esto explicar el enlentecimiento aunque el hardware se mantenga. Rel.: meneame.net/story/superando-la-ley-de-moore

| etiquetas: ley , page , software , doblar , lentitud , cada , 18 , meses , lento , moore
200 186 0 K 576 mnm
200 186 0 K 576 mnm
Comentarios destacados:                
#2 Recuerdo la época en que parte del código lo hacíamos en ensamblador, y optimizábamos cada línea de código...
Recuerdo la época en que parte del código lo hacíamos en ensamblador, y optimizábamos cada línea de código...
* En realidad la Ley de Moore dice "aproximadamente cada 18 meses se duplica el número de transistores en un circuito integrado"
A pesar de que la ley originalmente fue formulada estableciendo que la duplicación se realizaría cada año, posteriormente Moore redefinió su ley ampliando el periodo a dos años.
es.wikipedia.org/wiki/Ley_de_Moore
#24, "solo 32Mb", odio ser el puto abuelo cebolleta, pero en los tristes 16k del spectrum se llegaron a hacer virguerías, y en el 48k habia aventuras tridimensionales con laberintos de miles de salas y gráficos casi casi decentes.

48k, eso es la quinta parte que ocupa el "hello Word" en cualquier lenguaje actual (excepto Java donde el Hello World en J2EE debe andar por los varios MB para tener motor de persistencia y control de sesiones o algo asi)
El mayor problema ahora es el dinero. Todo el mundo quiere dinero, cosa normal. Pero no es tan normal, que por sacar una cosa antes, para hacerse con esa parte del mercado, tenga un montón de errores.

Os pongo un caso. La competencia entre los videojuegos FIFA y PES. Es curioso estos juegos de fútbol, compiten entre sí. Todos los años. Yo me acuerdo que hace años, dichos juegos salían sobre principio mediados de noviembre. Y sin embargo ahora salen en octubre. El caso es que los sacan antes,…   » ver todo el comentario
pero ahora se pueden hacer cosas más complejas en menos tiempo, si lo hiciéramos todo en ensamblador y programándolo desde cero cada vez, se tardaría una eternidad en conseguir la complejidad y flexibilidad del software de hoy.
#7 y he ahí el problema. Hoy la respuesta a "tu programa es lento" es "no, el lento es tu ordenador, busca uno más rápido".
#5 Creo que te equivocas. El código es lo que menos ocupa en un videojuego, y son las texturas y sonidos las que los engordan.

Puedes probar el juego "kkrieger", un shooter en 3D de tan solo 96kb, en el cual las texturas y sonidos son calculados durante la ejecución del mismo.
#5 juas, y la nueva expansión del wow ocupa 12 GB! eso de juegos de 1 GB hace tiempo que no lo veo xD

Lo cual me recuerda otro caso: remakes de juegos de 8 bits (que podian ocupar 30 ks) metidos en 25 megas.
Toda la razón, las cosas siguen funcionando tan lentas como siempre. Pero al menos ahora hacemos cosas mucho mas complejas en esa cuota de tiempo. En cualquier caso, muchas veces desearia que el software fuera mas sencillo o algo menos funcional con tal de que fuera instantaneo.
#2, "parte del código la haciamos en ensamblador"

¿Parte? seras cobarde... ¿usando librerias para facilitar eh? ¿un poco de C simplifica no?

Un verdadero informatico hacía todo el programa en ensamblador y las partes críticas las diseñaba sobre chips hechos a medida que disminuian la latencia de respuesta de los ciclos de reloj...

Ah, que tiempos aquellos.... xD
No es nada nuevo, cuando yo estudiaba había un chiste que decía: "el mayor logró de la industria del software es conseguir anular los increibles avances de la industria del hardware" o algo por el estilo. :-P
pero ahora se pueden hacer cosas más complejas en menos tiempo, si lo hiciéramos todo en ensamblador y programándolo desde cero cada vez, se tardaría una eternidad en conseguir la complejidad y flexibilidad del software de hoy.

Eso es cierto y tampoco se tiene que hacer todo con ensamblador o código máquina. Pero sí se puede hacer mejor eso está claro. Muchos programas apenas están optimizados.

Salu2
#7 por supuesto, pero creo que esta ley se debe a que cada vez la arquitectura es cada vez más compleja, no a la optimización. puedes elegir hacer un servicio web o abrir un socket directamente y empezar a mandar datos. claro que la optimización cuenta, pero entonces no pinta nada una ley, es algo que depende del programador, la complejidad es cada vez mayor y hay que manejarla, esto si más es predecible.

#8 yo, jamás, JAMÁS, he podido jugar a un juego "nuevo" en mi ordenador, aunque estuviera recién comprado, y son tres ordenadores los que he tenido. eso de busca uno más rápido se traduce por "cómprate el más caro".
El mercado del software se mueve en base a la demanda. Optimizarlo es mas caro y como el cliente no lo exige pues no se hace.

Si la gente no usara el software "pesado" ya se preocuparían ellos de evitar que lo fuera. Pero la gente sigue instalando "MSN 7.9 versión chupiguai" aunque ocupe 500Mb en disco, requiera 1,2 Ghz de procesador y consuma 1GB de Ram. Todas estas aplicaciones "de juguete" como son el Spotify, Windows Media, etc. que deberían requerir…   » ver todo el comentario
Yo me dedico a la informática, concretamente a los sistemas de información (esto mueve mucha pasta cada año) y en general, los sistemas no se optimizan casi nunca, y menos en desarrollo (supongo que con los juegos pasa algo parecido)

Se desarrolla a toda leche y apretando los costes al máximo. El optimizar algo no significa mirar el código, significa pruebas de prestaciones, con un Hardware dedicado para ello (tiene que ser similiar a lo que hay en producción, por lo que es caro) y un SW…   » ver todo el comentario
También tiene mucho que ver que antes los programadores eran gente especializada y ahora ponen a cualquiera con un curso de 100 horas de java a programar.
La Ley Candemore: si un usuario puede joder un sistema, lo joderá.
la realidad es que cada 18 meses le añadimos una capa mas de abstraccion. jejeje

antes para la administracion de una tienda

1992
maquina/bios/kernel/shell/egine/database/program

hoy en dia para gestion de una tienda

2009
maquina/bios/kernel/shell/server/database/sql/
maquina/bios/kernel/shell/java/jdk/xml
maquina/bios/kernel/shell/server/apache/conexion
maquina/bios/kernel/shell/server/apache/tomcat/java/jdk/xml/structs/program/vista
maquina/bios/kernel/shell/se…   » ver todo el comentario
En relacion con #5.
Como ejemplo perfecto de optimizacion en codigo los juegazos en 'solo 32 Megabytes' de la Nintendo 64 como el 'Leyend of Zelda'. Eso es programacion en estado puro.
Ojo, 32 Megabytes son equivalentes a unos ocho MP3 de tres minutos, y el Legend of Zelda es un juego largo, largo y con infinidad de detalles y sorpresas.
Lo de Microsoft con DirectX y compañia es todo lo contrario, lo unico que hacen es crear 'monstruos' consume recursos y supuesta sencillez de uso ocultando los detalles.
Si traspolasemos lo que se programaba con 64 Kbytes en un Commodore 64, Spectrum y Amstrad al equivalente con la potencia de hoy la carrera de informatica la estudiaban hasta las piedras.
Qué va!
si cada versión de KDE o de firefox que utilizo siempre dice que ahora funciona un 20% más rápido....
#24 el sistema operativo de commodore con las extensiones de basic completas no alcanzaban los 16 KB por lo que obtuvo diversos premios. Si hoy dia se programara así, nos sobraría ordenador por todas partes...
#54 yo sigo disfrutando de mi c64 con vice... recuerdo el primer pc que tuve en mis manos con 640 Kb y con los mismos juegos que yo tenía en commodore... defender of the crown, zaxxon o rambo II... todavía me rio de lo malos que eran en PC, la música tan deplorable y los gráficos tan nefastos... cuando volvía a casa a jugar con mi commodore me sentía el hombre más afortunado de la tierra. Mucho ha llovido desde aquello y la verdad es que fue una pena que las políticas de una empresa hundieran el buen hacer de los ingenieros que hicieron posible lo que para mi fue uno de los mejores ordenadores domésticos de la historia.
Mi opinión cómo programador:
Uno de los problemas de rendimiento es que éste se riñe con otros aspectos importantes de un programa, como por ejemplo: la encapsulación, la división por capas, hacerlo multiplataforma, respetar estándares, modularización para reaprovechar el código, capas de abstacción, el uso de ciertas tecnologías estándares que aumentan la interconectividad, como los webservices que indicaban más arriba.
Así, si optimizas un programa, has de empezar a cargarte las normas de buena programación, si el programa es muy grande puedes hacer una cosa inmantenible...
#17 adobe cs3 todo bien, cs4 prácticamente igual pero al instalarlo me dice solo tiene 1gb de ram. y si vamos para atrás cada versión necesita menos maquina y las cosas básicas son iguales a la mayoría.
#24 Creo que las medidas eran en megabits, es decir, divide por 8 y tendrás los megabytes. 32/8 = 4 Megabytes era lo que ocupaban esos cartuchos realmente. Vamos, que aún más merito si cabe.

Rectifico: estabas hablando de juegos de la N64 y yo de los de la SNES. oops!
El problema es que basicamente, sale mas barato cambiar el hardware en el que corre ese software que optimizar el software para que corra en ese hardware.

Ademas en los lenguajes de programacion mas utilizados ultimamente, lease (Java, .Net(VB.Net, C#, ..)), hay una maquina virtual que se encarga de la gestion de la memoria y liberacion de los recursos, por lo que el programador no le dedica tiempo a este tema.

Añadimos a esto, que pocos desarrolladores conocen lo que realiza internamente…   » ver todo el comentario
Yo lo único que se es que todo es más malo... en general... la comida sabe peor, las paredes de los pisos son de cartulina, las cajas de los PC se te descomntan en las manos... y el software igual. Alguien ha dicho por ahí que Photoshop y Flash cada vez funcionan más rápido... ¡Tararí que te ví! El Pack CS4 de Adobe va todo fatal... el Open GL se cuelga en estaciones de trabajo distintas incluyendo dos MAC Pro y un Dell Precission con tarjetas gráficas de esas carísimas... El único software que…   » ver todo el comentario
Es algo logico, cuando la hora de programacion es más cara que el coste en hardware del aumento de potencia consumido por ese software, deja de ser rentable optimizar codigo.

Esto se enseña en primer año de ingenieria

Es decir, ¿Me estás diciendo. Que yo me tengo que gastar 400 € (por ejemplo en una tarjeta gráfica) por que tu has usado una hora menos para optimizar el código?

Es decir que en el primer año de ingeniería ¿os enseñan a no saber amortizar y a pasar ese coste al cliente?. Si yo hiciese lo mismo cuando programo para un microprocesador o un microcontrolador íbamos dados.

Salu2
#2 alabado seas.
Luego la gente se extraña cuando digo en la escuela 'prefiero C que Java' o cosas por el estilo. Desgraciadamente mi opinión no es compartida.
#5 insinuas que el código es el que hace que pesen los juegos? Lo siento, pero no tienes ni puta idea.
#5 Creo que te equivocas. El código es lo que menos ocupa en un videojuego, y son las texturas y sonidos las que los engordan.

Puedes probar el juego "kkrieger", un shooter en 3D de tan solo 96kb, en el cual las texturas y sonidos son calculados durante la ejecución del mismo.

Y yo no he dicho lo contrario. Cuando digo "sobre todo el código" me refiero a la velocidad de ejecución y al rendimiento general. Por supuesto que lo que más ocupa son los gráficos y la música. Especialmente los primeros.

Y si KKrieger es una verdadera obra de arte de la programación y sobre todo su programador demuestra tener grandes conocimientos matemáticos, para hacer lo que hace.

Salu2
Cuando mas se optimiza un codigo por regla general menos multiplataforma se convierte y hay que empezar a hacer trucos con el hardware. Aparte de la complejidad que exigimos hoy dia a los programas, uno de los grandes males respecto al rendimiento en nuestros dias es el uso de aplicaciones web, ya que una vez que hemos conseguido maquinas con una velocidad de calculo brutal, multiples CPUs e ingentes cantidades de ram, hemos añadido una nueva capa de abstraccion con el resultado de programas con un tiempo de respuesta inadmisible hace 10 años en una aplicacion de escritorio.
#2 Cuando las cosas funcionaban como tenian que funcionar: Bién.
#56 Habías estado en alguna euskal party con el tema de las demos de 4 16 y demás?
Seguro que es cosa de Microsoft </ironic>
#33 La gente ve televisión basura porque le gusta. Dicen lo contrario porque esta mal visto, pero la acaban viendo porque les gusta.

Ninguno de ellos preferiría ver programas como Redes o reportajes sobre la crisis económica. Eso no lo vería casi nadie aunque lo pusieran en prime time (las tv lo han intentado algunas veces).

La telebasura no es una conspiración de los medios contra sus televidentes, es una demanda social.
#14 ¿¿¿NO hace falta que te responda verdad???Siendo software libre puedes RECOMPILAR todo el software existente y adaptarlo a tu máquina.
Para #56.
En esta pagina de mi blog tienes un pequeño guiño al C64 (necesitas java instalado) :
folk.uio.no/fjrodrig/quien_soy.html
Para #37. No puedo estar de acuerdo. La telebasura 'retroalimenta' la supuesta demanda de telebasura. La gente ya no valora los contenidos de en television porque la caja tonta es un componente mas de la familia que dice lo que quiere cuando quiere y de cualquier manera.
Redes es una propuesta interesante como programa divulgativo, pero nunca me ha convencido del todo porque trata los temas de forma tan superficial que terminan no aportando nada.
Las televisiones lo unico que han intentado es hacer programacion lo mas barata posible. La prueba de ello son todos los 'famosos' sin causa ni esfuerzo que han surgido de la nada aparentemente para quedarse. Menos mal que ya acabaron con cronicas marcianas.
Pues mi ordenador que tiene 4 años debe de ser una tortuga.
No, nunca fui desgraciadamente. Pero un amigo mio de Mallorca quedo en segundo lugar en la categoria de demos de 1 mega para PC, creo que fue en 1997 o 1998. Se llama Abel Belzunces, el mejor programador que he tenido el gusto de conocer en persona. El tipo programaba en pascal sobre Ms-dos e insertaba codigo maquina entre las lineas de Pascal como si se escribieran solas. Tecleaba con dos dedos mas rapido que yo con curso de mecanografia.
Me gustaria tener la oportunidad de visita la famosa party de Findlandia que la tengo relativamente cerca ahora.
Para #6. El mejor ejemplo que se me ocurre del codigo maquina es el DOOM que lo utilizaba solo para las rutinas criticas en calculos y pintado de pantalla. El resto era puro lenguaje C; y funcionaba razonablemente en un 386 y perfecto a partir de 486.
Tienes razon en lo de la complejidad, por eso ahora todo se programa orientado a objetos, para reducirla drasticamente. Esto quiere decir reducir la complejidad en la resolucion de un problema concreto en forma de programa. El codigo puede ser…   » ver todo el comentario
Es algo logico, cuando la hora de programacion es más cara que el coste en hardware del aumento de potencia consumido por ese software, deja de ser rentable optimizar codigo.

Esto se enseña en primer año de ingenieria
La diferencia entre optimizar un SW o un HW consiste en la distribución de costes.

Supongamos que a una empresa, mejorar el código de su programa para lograr un rendimiento mayor le cuesta un año de trabajo de un tio. Minimo 30,000 euros.

Mejorar el rendimiento en base al HW consiste en decirle al cliente te tienes que poner un ordenador más potente, total 300 euros ( de los malos pero mejor que el del año pasado ) y encima te funcionará mucho mejor el Vista.

300 euros para una empresa…   » ver todo el comentario
Mi Commodore 64 tuvo una vida util de unos 10 años, y los programas que se hacian para el cada vez eran mejores y funcionaban mejor. Con el Amiga paso algo parecido durante unos 7 años. Pero llego el PC que solventaba el problema de la calidad/velocidad por la fuerza bruta a costa de nuestro bolsillo. Al principio les salio bien conmigo. Intel 386 40 Mhz, Intel 486 66Mhz, Pentium 133Mhz, AMD 300Mhz, Celeron 400 Mhz, Celeron 800 Mhz, AMD 2000Mhz.
Y con el ultimo PC a 2000Mhz me pare, porque vi con claridad que esa potencia me da todo lo que necesito y que el mercado de videojuegos actual es muchas veces una estafa por precio, por calidad y por recursos requeridos para poder funcionar.
Para #10. Eso no es un juego, eso es una 'particion' del disco duro.
Para #12. Eso no es del todo verdad. Las ultimas tarjetas graficas ya por si solas pueden costar 400 euros.
Para #13. Aplaudo tus esfuerzos por tener un sistema operativo decente.
Pero discrepo en que la gente no obtiene software optimizado porque no lo reclama.
En este caso la mejor comparacion es la programacion en television, la justificacion de sus 'programas' suele ser la misma, 'la gente lo ve porque le gusta', y en realidad lo ve porque no hay alternativa alguna y porque si te compras una tele debe ser para usarla.
Llevo mas de 4 años sin ver television. No la quiero en casa. Sin embargo, yo soy el raro, y la television no parece desaparecer. Pues lo mismo con el software come recursos.
Para #47.
- Java es un lenguaje para resolver 'problemas', en forma de aplicaciones, que en la mayor parte de los casos no tienen que ver en realidad con computadoras. La computadora es solo la herramienta y la aplicacion la solucion.
- C es un lenguaje para escribir programas eficientes orientados a la maquina. Por ejemplo para desarrollar, mejorar y ampliar el sistema operativo y otras virguerias..

Programo en los dos lenguajes. Como lo que me gustan son las maquinas (los PCs) prefiero el C, pero no dejo de ver la utilidad de Java y su filosofia como una gran idea.
Para #24. Solo queria dar un ejemplo medio reciente y comparable a todo lo 3D que circula a modo de videojuego. Nunca me he comprado una consola. Yo soy de emuladores ;) .
Vengo de la escuela de los 8 bits, como tu. Lo mejor para mi fue mi C64, incluso mas que el Amiga, que fue increible en su momento (bueno, y sigue siendolo gracias a la comunidad en internet).
bueno tambien explica windows vista
El Instituto Mexicano de Investigaciones Incompletas dice que cada 2 meses
#35 ... o de Apple.
Cada vez se exige más funcionalidad al software, lo que lleva a una mayor complejidad y consumo de recursos. Cosa que no tiene nada que ver con un buen análisis de rendimientos de los productos que pretenden tener ese nombre ...
Para #53. Que maquinas aquellas! Y pensar que la aceleracion por hardware ya estaba implementada en el Commodore 64 hace 25 años, de ahi las maravillas que hacia con 1Mhz, y que sigue haciendo gracias a la demoscene para esta maquina.
Veo los avances actuales en informatica, desde la perspectiva de las maquinas de Commodore, en ocasiones como un atraso.
Prueba de ello es la gran masa que mantiene vivos los equipos a traves de la emulacion.
Commodore no fue una gran empresa, sus politicas sin sentido la hundieron, pero sus maquinas se han quedado para siempre con sus usuarios. El equipo que desarrollaba las maquinas era el verdadero corazon, para mi que la empresa no era consciente de lo que nos estaba regalando.
Para #55. Brindo contigo por los viejos buenos tiempos!!!!!!
Toda la documentacion sobre el C64 que no estuvo disponible en su epoca la tengo descargada de internet. Un par de gigas por lo menos.
Y uno de mis proyectos para antes de morirme es programar un emulador de C64 con sonido y floppy. Vivo en Noruega y estudio la carrera de informatica en la Universidad de Oslo. El semestre pasado nos empaparon bien de Ansi C y vimos ejemplos sobre como orientarlo a objetos. Todo con linux y GCC. En…   » ver todo el comentario
#9 Pues que ordenadores más malos te has comprado (o que baratos)... porque hoy con 400€ te montas uno para jugar a todo...
Mmmm... lo voy a leer bien, pero no se... el Photoshop y el Flash, por ejemplo, son más rápidos cada version (las probé en la misma compu), aunque quizás en general sea así.
#13 el spotify de mac es un programa de solo 5MB... no se por que dices que come recursos, funciona sin problemas en mi portatil de hace 4 años.

Por cierto he dejado de leer tu comentario cuando has dicho "En mi ordenador no entra nada que no esté optimizado" y luego has dicho que usas linux.
comentarios cerrados

menéame