Introducción básica al teorema de Andy Beer
El teorema de Moore trae esperanza a todos los consumidores de computadoras. Si creo que una computadora es demasiado cara y no puedo pagarla hoy, entonces puedo comprarla a la mitad de precio en dieciocho meses. Si fuera así de simple, las ventas de computadoras no podrían aumentar. Las personas que necesiten comprar computadoras tendrán que esperar unos meses más, y las personas que ya tienen computadoras no tienen ningún incentivo para actualizarlas. Lo mismo ocurre con otros productos de TI.
De hecho, durante las últimas dos décadas, las ventas de computadoras personales en el mundo han seguido creciendo. En 2004, Intel Corporation estimó que dentro de cinco años, para 2009, las ventas mundiales de PC (incluidas computadoras personales y pequeños servidores) crecerían un 60%, muy por encima del crecimiento de la economía. Entonces, ¿qué motiva a la gente a actualizar constantemente su hardware? La comunidad de TI resume esto como el teorema de Andy-Beale, es decir, Bill quita lo que Andy da (lo que Andy da, Bill se lo quita).
Andy es Andy Grove, el ex director ejecutivo de Intel, y Bill es Bill Gates, el fundador de Microsoft. Durante las últimas dos décadas, la velocidad de los procesadores Intel se ha duplicado cada dieciocho meses y la capacidad de la memoria y los discos duros de las computadoras ha aumentado a un ritmo aún más rápido. Sin embargo, los sistemas operativos de Microsoft y otras aplicaciones de software son cada vez más lentas y cada vez más grandes. Por lo tanto, aunque las computadoras de hoy son cien veces más rápidas que hace diez años, ejecutar software todavía se siente igual que antes. Además, en el pasado, todo el sistema operativo Windows tenía un tamaño de sólo una docena de megabytes, pero ahora tiene un tamaño de varios gigabytes, y lo mismo ocurre con el software de aplicación. Aunque el nuevo software es más potente que la versión anterior, la funcionalidad añadida definitivamente no es proporcional a su tamaño. Por tanto, hace diez años un ordenador sólo podía instalar un número limitado de aplicaciones, aunque la capacidad del disco duro haya aumentado mil veces. Lo peor es que los usuarios descubren que si no actualizan sus computadoras, muchos programas nuevos no se pueden utilizar e incluso el acceso a Internet es un problema. Pero los coches que hace diez años eran asequibles todavía pueden funcionar.
Este fenómeno, a primera vista, parece ser que Microsoft está trabajando en contra de todos. De hecho, el propio Gates y otros fabricantes no quieren que los sistemas operativos y las aplicaciones sean tan grandes. Se entiende que el propio Gates ha dicho muchas veces que el BASIC que construyó en el pasado tenía solo unas pocas decenas de kilobytes, mientras que ustedes (los ingenieros de Microsoft) necesitarían cientos de megabytes para construir .NET, que definitivamente se puede optimizar. Por supuesto, sabemos que el .NET actual de Microsoft es mucho más poderoso que el BASIC de hace veinte años, pero me temo que nadie cree que sea diez mil veces más poderoso. Esto demuestra que los desarrolladores de software ya no se preocupan tanto por el presupuesto como hace veinte años. Sabemos que el intérprete BASIC de aquel entonces estaba escrito en lenguaje ensamblador y no podía ser más refinado, de lo contrario no se ejecutaría en absoluto en los primeros IBM-PC. Sin embargo, exigir a los ingenieros de software que utilicen programación en lenguaje ensamblador dará como resultado una eficiencia de trabajo extremadamente baja, y el programa escrito tendrá poca legibilidad y no cumplirá con los requisitos de la ingeniería de software. Hoy en día, debido a que hay suficientes recursos de hardware, los ingenieros de software prestan más atención a la eficiencia de su trabajo, la estandarización y legibilidad de los programas, etc. Además, debido al aumento de los costos laborales, para ahorrar tiempo a los ingenieros de software al escribir y depurar programas, los lenguajes de programación son cada vez más fáciles de usar, pero al mismo tiempo, su eficiencia es cada vez menor. . Por ejemplo, hoy Java es mucho menos eficiente que C, que a su vez era menos eficiente que C hace veinte años. Por lo tanto, es inevitable que incluso el software con las mismas funciones consuma hoy más recursos de hardware que ayer.