Eficiencia Informática, software inflado y Ley de Wirth

Esto es una de esas cosas de la Informática que nunca entenderé:

Ley de Wirth

La Ley de Wirth podría considerarse tanto una parodia de la ley de Moore, como una descripción dura pero muy acertada de la realidad informática:

El software se ralentiza más deprisa de lo que se acelera el hardware.

O sea que los programas en sus versiones más nuevas hacen que tu compu recién comprada ande peor que la anterior con los programas viejos. A veces cuando veo que en mi compu un programa tarda unos segundos más de lo que quisiera en hacer lo que le pido, no puedo evitar pensar en esto. «Esta mierda tarda más que mi vieja PC con Windows 98». Y me gustaría saber qué cosas tiene de más (que no significa necesariamente mejor) este Firefox 5 que el 1 no tenía, o qué tendrá el messenger live que el messenger de hace 10 años no tenía. Miro el explorador de carpetas tardar en abrirse y pienso «esto debería ser instantáneo» después de 15 años de sistemas windows. El Sistema Operativo tendría que bootear en 5 segundos, no en 55 (y encima cuando decimos que tarda «sólo» 55 segundos, lo decimos como si fuera la gran maravilla).

Me pregunto cuánto tardará en bootear un windows 98 instalado en una computadora de hoy día. Obvio que tiene mucho menos MB que «levantar», pero también es cierto que seguramente no está optimizado para aprovechar el hardware actual.

Reconozco que hay partes de ese código agregado a través de los años, que son mejoras. Me viene a la mente el ejemplo de las mejoras de seguridad. Pero también pienso en esas capas tras capas tras capas de boludeces que pueden llegar a tener algunos programas. Pienso en ese explorador de carpetas de windows 7 que realmente no hace gran cosa en comparación con el explorador de windows 98; con la diferencia de procesador y de ram, debería a esta altura poder leerme la mente y abrir instantáneamente los archivos que quiero, tenes 200 opciones de ordenamiento y visualización y cosas así. A veces miro este botón «Enviar» que tiene un degradé en color, puntas redondeadas, «efecto glow»… sombra esfumada!!! y pienso que preferiría un simple rectángulo blanco con borde linear negro, si eso hace que no tarde ni consuma tanto.

Software Inflado

Este fenómeno se conoce como bloatware o «software inflado«, y si justo ahora están pensando en Nero o iTunes tienen razón. La culpa es, como no, del Marketing (cosa odio con toda mi alma, y que algún día les contaré por qué). La idea de las empresas de software de que sí o sí cada tanto deben sacar una nueva versión de su programa, y si no tiene mejoras apreciables, no importa. O se inventa cosas, o se agregan cosas inútiles o simplemente se le da una lavada de cara. Se le agrega funcionalidad innecesaria, El resultado es que el programa, para hacer lo mismo de siempre, ocupa más RAM, más procesador y más espacio en disco. El problema ya comienza a la hora de programar, pues justamente los programas de desarrollo de sofware sufren este defecto y lo traspasan a cualquier software que programes usándolos. «Hagamos que el lenguaje sea interpretado en vez de compilado, total… tenemos ram y procesador de sobra». «Hagamos que este objeto herede de un enorme árbol de objetos anteriores, aunque no comparta casi nada de sus procedimientos.»

Luego los programadores hacen lo mismo, y así, hay casos absurdos como el Open Office, que en la práctica evitás tener que abrirlo para redactar documentos pequeños porque te aburrís de esperar a que abra. O programas que se supone que deberían hacer una sola cosa (grabar un CD) pero que vienen llenos de «features» indeseables.

Pero esto también ocurre en otros ámbitos de la informática. Una vez hablando con un amigo, se quejaba de que las baterías de notebooks duraran apenas unas horas. «Ojalá inventaran una batería que dure 30 días». Y yo le contesté «Si la inventaran, inmediatamente harían unas notebooks con tantas porquerías agregadas que consumiría toda esa energía de 30 días en 5 horas».

dormite esperando que abra Firefox

Y en todos los aspectos es así la informática, me asombra lo ineficiente que se ha vuelto con los años. Encontrás ejemplos en todos lados. Conozco muchas páginas web que cambian una o dos veces por día como mucho, pero están hechas con complejos CMS, sin sistema de cacheo de páginas, que usan quién sabe cuántos objetos en php y cuántas llamadas sql y cosas en javascript, para mostrar la misma página una y otra vez. O que en vez de usar un programa de correo electrónico, usamos un programa navegador web, para usar adentro un programa web de correo electrónico. Y ni hablar de la tendencia de los nuevos sistemas operativos a hacer que ciertas partes en vez de programas ejecutables sean, pequeñas aplicaciones web corriendo en pequeños intérpretes de html5 y javascript. Es que ya el concepto de página web es un uso ineficiente de la informática. Piensenlo, están en una página web cualquiera, por ejemplo, este mismo blog, y quieren pasar a la siguiente página para leer los siguientes artículos, y ¿qué viaja desde mi servidor hasta sus computadoras? ¿El texto del nuevo artículo? ¡No! Viaja la página entera, el código HTML entero de la nueva página, que es exactamente igual a la anterior, salvo por el texto del nuevo artículo. No viaja sólo la información, viaja toda la página, salvo alguna imagen o pequeña cosita que está en tu caché. (creo que ni en sitios que hacen uso intensivo de ajax como Gmail te salvás de esto). ¡Un desperdicio!

¿Cómo se soluciona?

Por ahora, mientras la informática no vuelva a necesitar priorizar la eficiencia como en sus orígenes de pocos recursos, la única que te queda es comprar más RAM. Luego, con mejores diseños de software compilado. Con software que haga una sola cosa y bien. Con sistemas de plugins que te permitan elegir qué funcionalidad extra querés tener disponible y cuál no. Incluso filtrando esas características extras en el momento de compilar el software. Manejando sistemas de cacheo. Y por qué no, cambiando de paradigma.

 

9 thoughts on “Eficiencia Informática, software inflado y Ley de Wirth

  • German
    14 octubre, 2011 at 9:04 pm

    La verdad que es un excelente artículo y un punto de vista muy acertado. Creo que con mi pequeña netbook debería estar en condiciones de hacer muchas cosas pero cada vez me rinde menos.

  • Daneel
    15 octubre, 2011 at 12:02 am

    Totalmente de acuerdo con las porquerías visuales que realentan la máquina. DETESTO los efectos que vienen por defecto en el Windows 7. Lo primero que hice cuando lo instalé en la compu de mi laburo fue ir a Mi Pc -> propiedades-> rendimiento y sacar TODO (todo salvo mostrar el contenido de las carpetas y el suavizado de fuentes). Eso lo vengo haciendo desde XP. ¿Para qué quiero sobra sobre el mouse y los menúes? ¿Para qué quiero que la ventana realice una animación cuando se maximiza, minimiza? ¿Es necesario que las barras superiores tengan una transparencia? Es todo MIERDA.

    El Ubuntu me parece que está sufriendo de eso también con el Unity. Demasiado «chrome» que consume recursos y en definitiva no sirve para nada.

  • Cradwel
    15 octubre, 2011 at 3:46 am

    Justo hoy estaba pensando las pros y contras de pasarme a Archlinux desde mi (amado) Ubuntu por algunas cosillas parecidas 🙁

  • Km78
    15 octubre, 2011 at 1:01 pm

    Tienes toda la razón. Como desarrollador, en todos los programas que he hecho he evitado que fueran más lentos que el anterior, y que aportaran algo o, de lo contrario, no los actualizaba. Esto tiene dos contrapartidas:
    1- la gente ya no los quiere porque no son «guapos» visualmente ni tienen «animaciones»
    2- la mayoría creen que, por ser versiones de hace un par de años o tres (o más), ya no están a la altura de otros más nuevos.

  • karl lazaro
    6 noviembre, 2011 at 4:24 pm

    El office 97 en mi AMD k6-2 con 64mb de RAM volaba. El office 2007 en mi core2duo con 3gb de RAM da pena lo que tarda en iniciar :/

  • joshua
    13 noviembre, 2011 at 12:04 pm

    Totalmente de acuerdo con el post! No entiendo que mania tienen algunos con las pijadas graficas y con «funcionalidades» que no vas a usar jamas! (me cago en el nero burning room y en el hijo de puta que lo invento!aguante cdburnerXP o Brasero!)como editor de texto uso gedit así que no me precupo xD por otra parte podes probar opera o midori.. Por otra parte hay aplicaciones muy bien diseñadas con un huevo de funcionalidades y en encima muy ligeras (opera por ejemplo) así como sistemas operativos que no sacrifican rendimiento y aún así el diseño hace que se caiga la baba..ElementaryOS por ejemplo.. los chicos de ubuntu ya estan tomando nota.. (cabe aclarar que elementary se bassa en ubuntu pero es cuatro veces mas rapida y con mejor diseño..)

  • joshua
    13 noviembre, 2011 at 12:34 pm

    Ahora que me lavé la cara veo que cometí unas cuantas faltas de ortografía y fui un pelín redundante.. pero bue, ya fue.. xD

Deja una respuesta

Your email address will not be published. Required fields are marked *.

*
*