Hace 14 años | Por jm22381 a gawker.com
Publicado hace 14 años por jm22381 a gawker.com

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.: Superando la Ley de Moore
Hace 16 años | Por Zootropo a neowin.net
Publicado hace 16 años por Zootropo
a neowin.net

La Ley de Moore pronostica que aproximadamente cada dos años se duplica el número de transistores en [...]

Comentarios

Kereck

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.

Don_Gato

#5 juas, y la nueva expansión del wow ocupa 12 GB! eso de juegos de 1 GB hace tiempo que no lo veo lol

Lo cual me recuerda otro caso: remakes de juegos de 8 bits (que podian ocupar 30 ks) metidos en 25 megas.

francisco

#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.... lol

Gry

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.

Nova6K0

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

MarioEstebanRioz

#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".

sorrillo

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 recursos mínimos y se comen un PC de última generación sobreviven gracias a vosotros.

En mi ordenador no entra nada que no esté optimizado. En casa tengo un VMware en un equipo a 2,3 Ghz (1 procesador, claro está) con 2 GB de Ram. En ese equipo corren 5 maquinas virtuales que hacen "de todo", incluso está el equipo escritorio publicado por PXE+NFS. La última vez que lo miré le sobraban la mitad de los recursos al equipo.

Evidentemente si ese equipo en vez de usar software optimizado (distribuciones linux minimalistas con los componentes que necesitan) usara un sistema operativo Windows "de última generación" ese ordenador no se podría usar ni para navegar por la web.

Pero claro, como yo soy el rarito el ritmo del software sigue como sigue y lo único que aparecen son algunas pataletas como esta sin mas repercusión.

D

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 específico que también es caro (por ejemplo, el loadrunner para aplicaciones WEB) Aparte de eso se precisa a un equipo experto en la aplicación, el HW y el SO (no siempre existe gente con ese perfil y es caro mantener ese equipo) y a todo el equipo de desarrollo solventando los cuellos de botella que se encuentran.

Lo normal, es que sólo se hagan las pruebas de prestaciones y las optimizaciones cuando algo casca en producción (por ejemplo, cuando te conectan una nueva aplicación a tu sistema o aumenta el número de usuarios) No se suele cambiar el HW porque es bastante caro, aunque algunas veces se hace. Curiosamente, el cliente casi nunca paga por prestaciones, pero no le importa dejarse un pasturrial en cosas como soportes con IBM, SUN o HP y soportes Oro de Oracle.

Si a todo esto le añadimos que a las aplicaciones se les van agregando funcionalidades con el tiempo, la cosa empeora poco a poco (o mucho a mucho, depende de lo que añadas)

t

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.

D

#12 Echale minimo 200€ mas si quieres jugar "a todo"

http://zonaforo.meristation.com/foros/viewtopic.php?t=1325730

Te enlazo eso para no tener que explicar en una parrafada lo que explican mejor otros

D

La Ley Candemore: si un usuario puede joder un sistema, lo joderá.

f

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/server/apache/tomcat/java/jdk/xml/hibernate/program/permanencia/hql->SQL
maquina/bios/kernel/shell/server/apache/tomcat/java/jdk/xml/spring/program/negocio/vista
maquina/bios/kernel/shell/conexion/navegador/HTML.javascrits.css/127.0.0.1/
maquina/bios/kernel/shell/server/apache/tomcat/i.o

... y eso es poco

ahunque el software comple los mismas funciones que el del 1992 que el del 2009 hay una cierta diferencia que el comcepto de software monousuario y monotarea ha llegado a su fin, y el comcepto de pagina web estatica 10 cuartos de los mismo

hoy en dia hay software que se carga remotamente desde un mavegador que es multitarea y multiusuarios maneja datos tando centralizado como distribuidos en redes p2p es otro concepto de trabajar

eso si no quita que te compres el mismo microsoft office 2015 y que sea mas de lo mismo no aporte nada nuevo y encima nesesita 8 veces mas maquina que la anterior version teniendo alternativas practicas ultiles, gratuitas y abiertas

frankiegth

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.

C

#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...

osiris

Qué va!
si cada versión de KDE o de firefox que utilizo siempre dice que ahora funciona un 20% más rápido....

C

#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.

D

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...

D

#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!

p

#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.

e

#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.

g

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 continúa funcionando bien es el que siempre mantiene su filosofía de ser un buen software y no de ser cada vez más fácil de usar y con iconos más chulos... como por ejemplo el Maya, que hay todavía algunas cosas que solo las hace si se las chutas por código Lástima que sea tan caro y las alternativas estén tan poco... optimizadas.

D

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 esta maquina virtual, para poder optimizar el codigo fuente.

Sumamos que todos los proyectos se entregan con "prisas" y las nuevas fuencionalidades se añaden a ese codigo hecho con "prisas".

Concluyendo, con la primera premisa, sale mas barato cambiar el hardware en el que corre ese software que optimizar el software para que corra en ese hardware.

kaoD

#5 insinuas que el código es el que hace que pesen los juegos? Lo siento, pero no tienes ni puta idea.

Nova6K0

#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

A

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.

Nova6K0

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

D

#5 El motivo de que los saquen antes y no verifiquen los juegos tanto es debido a que:
1.- Son más complejos, es más fácil verificar un juego de la SNES que el último Fifa.
2.- Hay posibilidad de sacar parches para corregir errores. Antes si grababas un juego de la SNES mal al cartucho no había forma de corregirlo, y podría ser un error gravísimo que causase pérdidas millonarias. Hoy no.

diskover

#2 Cuando las cosas funcionaban como tenian que funcionar: Bién.

p

Seguro que es cosa de Microsoft

C

#56 Habías estado en alguna euskal party con el tema de las demos de 4 16 y demás?

sorrillo

#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.

frankiegth

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.

p

bueno tambien explica windows vista

Mox

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

frankiegth

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.

frankiegth

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).

frankiegth

Para #56.
En esta pagina de mi blog tienes un pequeño guiño al C64 (necesitas java instalado) :
http://folk.uio.no/fjrodrig/quien_soy.html

frankiegth

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 informatica son muy buenos aqui.
Esa sensacion de sentirse el hombre mas afortunado de la tierra solo la senti con el C64 y con Amiga, y un poco en la ultima etapa del Ms-Dos, con la GUS, en PC cuando todo se programaba a pelo con el mundillo de la demoscene y juegazos como el DOOM, Quake y demas.

Sumlaris

Pues mi ordenador que tiene 4 años debe de ser una tortuga.

frankiegth

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.

fer13

#35 ... o de Apple.

frankiegth

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.

h

El Instituto Mexicano de Investigaciones Incompletas dice que cada 2 meses

D

#14 ¿¿¿NO hace falta que te responda verdad???Siendo software libre puedes RECOMPILAR todo el software existente y adaptarlo a tu máquina.

frankiegth

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 MUY complicado pero la arquitectura/estructura del programa estar a la vez muy bien definida. El coste de reducir la complejidad en el proceso de elaboracion de programas orientados a objetos es el espacio y sobre todo la velocidad del programa final. Y lenguajes como JAVA, que considero genial dentro de sus limitaciones actuales, todavia consumen mas tiempo en ejecucion porque todo se ejecuta sobre una especie de 'Windows vitual' en memoria (llamado mainframe). El codigo maquina es un aliado a tener en cuenta en situaciones de calculo criticas mediante pequeñas porciones de codigo (maquina). No hay que olvidar su potencia.

c

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 no son nada y sin embargo, 30,000 si que lo son. Si la empresa tiene 200 clientes, el coste de mejorar el rendimiento a base de HW es de 60000, sin embargo, como lo han pagado entre muchos, no se nota.

Por cierto, eso del ensamblador sería hace muchiiiiiiisimo. Nosotros trabajamos con micros de 8 y 16 KB y trabajamos en C. Apenas tocamos ensamblador más que para pequeños retoques. Nos podriamos morir programando en ensamblador...

frankiegth

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.

frankiegth

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.

frankiegth

Para #10. Eso no es un juego, eso es una 'particion' del disco duro.

frankiegth

Para #12. Eso no es del todo verdad. Las ultimas tarjetas graficas ya por si solas pueden costar 400 euros.

r

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 ...

g

#9 Pues que ordenadores más malos te has comprado (o que baratos)... porque hoy con 400€ te montas uno para jugar a todo...

D

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í.

Bad_CRC

#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.