Bloatware ( eng. bloatware, fatware, elephantware [1] ) es un programa que tiene demasiadas funciones adicionales, cuya operación requiere una cantidad desproporcionada de recursos del sistema [2] [3] , especialmente si estas funciones no son necesarias o de poca utilidad para los programas de trabajo (este tipo de funciones a menudo se denominan " gimmicks " (inglés) , " bells and silbatos " (inglés) , literalmente: "campanas y silbatos") [4] .
El término inglés bloatware (también inglés crapware, shovelware ) también tiene un segundo significado, que se refiere al software preinstalado que consume muchos recursos y que el usuario no necesita, pero que le imponen los fabricantes de computadoras, tabletas, teléfonos inteligentes, etc. [5] [6 ] [7]
La principal diferencia entre constructores y programadores es que los constructores saben cuándo poner el último ladrillo, mientras que los programadores no. Cada nueva versión del programa añade algo a la anterior. La "Torre de Babel" crece a pasos agigantados y en algún momento comienza a caer.
Chris Kaspersky [8] .Cada programa se expandirá hasta que pueda leer el correo. Los programas que no pueden expandirse tanto son reemplazados por aquellos que pueden.
Jamie Zawinski , desarrollador de Netscape CommunicatorEl software técnicamente inflado se asocia con mayor frecuencia con el concepto de " características progresivas, características progresivas/caracteritis " [ 2] , que se refiere a la tendencia de los desarrolladores a agregar más y más funciones a un producto de software, en un intento de "mantenerse al día". competidores", pero que en realidad lleva a la creación de un producto más lento y menos eficiente [9] . Según datos de investigación anunciados en 2002, solo entre el 20 y el 25 % de las funciones de los productos de software se usaban siempre o con frecuencia, mientras que hasta el 45 % de las funciones nunca se usaban. Según Martin Fowler , la mayoría de los proyectos solo necesitarían ser una cuarta parte de su tamaño actual [10] .
Bloat no solo afecta el rendimiento de los programas: un aumento en el volumen del código del programa conduce a un aumento en el costo de su mantenimiento y desarrollo. Además, las funciones adicionales mal diseñadas pueden convertirse en una fuente de vulnerabilidades .
Otro factor que contribuye a la "inflamación de funciones" es el "efecto del segundo sistema" descrito por Frederick Brooks en 1975: un programador que desarrolla su segundo sistema tiende a agregar todas las funciones que no pudo agregar a su primer sistema (debido a la falta de tiempo). ). ), por lo que el segundo sistema suele estar sobrecargado de funciones.
Niklaus Wirth en 1996 escribió el artículo "Abajo los 'programas pesados'", planteando el problema de los programas para los cuales el aumento en los requerimientos de recursos excede el aumento en su funcionalidad y desempeño [11] . Tomó prestado el término " fatware " de un artículo de 1993 en la revista Byte [12] .
Wirth señaló dos "leyes" en broma que, sin embargo, reflejan con precisión la situación:
Dos factores están contribuyendo a la aceptación por parte del consumidor de tamaños de software cada vez mayores: el rendimiento del hardware aumenta rápidamente y la ignorancia de la diferencia fundamental entre las características vitales y las que es "agradable tener" [11] .
Nathan Myhrvold la expresión "el software es un gas" para describir el siguiente fenómeno: no importa cuánto se haya mejorado el hardware, los desarrolladores siempre tienden a agregar funcionalidad para obligar a sus programas a alcanzar los límites de ese rendimiento. [13] .
Adaptar programas antiguos a máquinas nuevas generalmente significa hacer cambios para que las máquinas nuevas funcionen como las antiguas.
Alan Perlis [14] .Los usuarios tienden a ver negativamente el software inflado. Según Joel Spolsky , lo hacen en vano, [15] por las siguientes razones:
Versión de Windows | UPC | Memoria | Tamaño del disco |
---|---|---|---|
ventanas 95 [16] | 25 MHz | 4MB | ~50 MB |
ventanas 98 [17] | 66 MHz | 16 MB | ~200 MB |
ventanas 2000 [18] | 133 MHz | 32MB | 650 MB |
Windows XP [19] (2001) | 233 MHz | 64MB | 1,5 GB |
Windows Vista [20] (2007) | 800MHz | 512 MB | 15GB |
Ventanas 7 [21] (2009) | 1GHz | 1 GB | 16 GB |
Ventanas 8 [22] (2012) | 1GHz | 1 GB | 16 GB |
Ventanas 10 [23] (2015) | 1GHz | 1 GB | 16 GB |
Ventanas 11 [24] (2021) | 1GHz | 4 GB | 64 GB |
Switched Downloadsquad publicó ejemplos de los peores programas en 2008 en la categoría de "elephantware", es decir, "programas inflados que hacen que las últimas computadoras personales arranquen como un Pentium 2 con 64 MB de RAM" [25] . Se han nombrado los siguientes programas:
Un buen ejemplo que ilustra el crecimiento de los requisitos son los requisitos del sistema para instalar el sistema operativo de Microsoft. Como puede ver, su crecimiento fue claramente desproporcionado con el surgimiento de nuevas oportunidades. Hay que tener en cuenta que esto se debe en parte al "truncamiento" de las capacidades de Windows según la licencia, mientras que los archivos principales del sistema se mantienen en el mismo número. Los requisitos mínimos para Windows 10 siguen siendo los mismos que para Windows 7, mientras que los usuarios y evaluadores notan un aumento real en el consumo de memoria. En consecuencia, el mantenimiento de los requisitos mínimos tiene, en cierta medida, un carácter publicitario.
Nero Burning ROM [26] se cita a menudo como un ejemplo de hinchamiento injustificado . Durante el ciclo de vida, el paquete de este programa adquirió un editor gráfico y de sonido, un reproductor de audio y video, así como una versión alternativa del programa de grabación con una interfaz simplificada, todo lo cual se suministró con un programa shell especial para su lanzamiento. y tenía estilos de diseño gráfico complejos .
Exactamente lo contrario de hinchar es el principio KISS , que prohíbe que los sistemas se vuelvan más complicados si ya funcionan bien. También contra la hinchazón es el primer principio de la filosofía Unix .
En 2014, Corea del Sur exigió legalmente a los desarrolladores de software para teléfonos inteligentes que proporcionaran la capacidad de forzar la eliminación de bloatware no deseado ("bloatware preinstalado innecesario"). Este paso fue causado por la creciente práctica de la preinstalación en los teléfonos inteligentes de software innecesario que consume muchos recursos y que no se puede eliminar por medios estándar [27] .