La hinchazón del software es un proceso mediante el cual las versiones sucesivas de un programa de computadora se vuelven perceptiblemente más lentas, usan más memoria, espacio en disco o potencia de procesamiento, o tienen requisitos de hardware más altos que la versión anterior, mientras que solo realizan mejoras dudosas perceptibles por el usuario o sufren un desplazamiento de funciones . El término no se aplica de manera consistente; Los usuarios finales lo utilizan a menudo como peyorativo (bloatware) para describir cambios no deseados en la interfaz de usuario , incluso si esos cambios tuvieron poco o ningún efecto en los requisitos de hardware. En el software de larga duración, la percepción de sobreabundancia puede deberse a que el software presta servicios a un mercado grande y diverso con muchos requisitos diferentes. La mayoría de los usuarios finales sentirán que sólo necesitan un subconjunto limitado de las funciones disponibles y considerarán las demás como un exceso innecesario, incluso si los usuarios finales con requisitos diferentes requieren esas funciones.
La inflación real (medible) puede ocurrir debido a que se resta importancia a la eficiencia algorítmica en favor de otras preocupaciones como la productividad del desarrollador, o posiblemente a través de la introducción de nuevas capas de abstracción como una máquina virtual u otro motor de secuencias de comandos por motivos de conveniencia cuando las restricciones del desarrollador son importantes. reducido. La percepción de una mayor productividad de los desarrolladores, en el caso de practicar el desarrollo dentro de entornos de máquinas virtuales, proviene de que los desarrolladores ya no toman en consideración las limitaciones y el uso de recursos durante el diseño y el desarrollo; esto permite que el producto se complete más rápido, pero genera aumentos en los requisitos de hardware del usuario final para compensar.
El término "bloatware" también se utiliza para describir software preinstalado o programas empaquetados no deseados . [1]
En programación de computadoras, la hinchazón de código se refiere a la presencia de código de programa (código fuente o código de máquina) que se percibe como innecesariamente largo, lento o de otro modo un desperdicio de recursos.
Los desarrolladores de software involucrados en la industria durante la década de 1970 tenían severas limitaciones en cuanto a potencia de procesamiento, espacio en disco y memoria. Se tuvo en cuenta cada byte y ciclo de reloj , y se trabajó mucho para adaptar los programas a los recursos disponibles. Lograr esta eficiencia era uno de los valores más altos de los programadores informáticos, y los mejores programas a menudo eran llamados " elegantes ", término utilizado por los matemáticos para describir una demostración ordenada, parsimoniosa y poderosa.
En el siglo XXI, la situación se había revertido. Los recursos se percibían como baratos y la rapidez de la codificación y las características principales para el marketing se consideraban prioridades. [2] En parte, esto se debe a que desde entonces los avances tecnológicos han aumentado la capacidad de procesamiento y la densidad de almacenamiento en órdenes de magnitud, al tiempo que han reducido los costos relativos en órdenes de magnitud similares (ver la ley de Moore ). Además, la difusión de las computadoras en todos los niveles de la vida empresarial y familiar ha producido una industria de software mucho más grande que en la década de 1970. Actualmente, los programas suelen ser producidos por equipos, dirigidos por comités en estudios de desarrollo de software (también conocidos como casas de software o fábricas de software), donde cada programador trabaja sólo en una parte del todo, en una o más subrutinas . [ cita necesaria ]
Finalmente, las herramientas y enfoques de desarrollo de software a menudo resultan en cambios a lo largo de un programa para acomodar cada característica, lo que lleva a una inclusión a gran escala de código que afecta la operación principal del software y es necesario para soportar funciones que en sí mismas pueden ser solo raramente usado. En particular, los avances en los recursos disponibles han dado lugar a herramientas que permiten un desarrollo de código más sencillo, de nuevo con menos prioridad a la eficiencia final.
Otra causa de la inflación son los estándares y productos que compiten independientemente, lo que puede crear una demanda de integración. Ahora hay más sistemas operativos, navegadores, protocolos y formatos de almacenamiento que antes, lo que provoca una gran cantidad de programas debido a problemas de interoperabilidad. Por ejemplo, un programa que antes solo podía guardar en formato de texto ahora debe guardar en HTML, XML, XLS, CSV, PDF, DOC y otros formatos.
Niklaus Wirth resumió la situación en la ley de Wirth , que establece que la velocidad del software disminuye más rápidamente de lo que aumenta la velocidad del hardware.
En su ensayo de 2001 Strategy Letter IV: Bloatware and the 80/20 Myth , [3] Joel Spolsky sostiene que mientras el 80% de los usuarios sólo utiliza el 20% de las funciones (una variante del principio de Pareto ), cada uno utiliza funciones diferentes. . Por lo tanto, las ediciones de software "lite" resultan inútiles para la mayoría, ya que carecen de una o dos características especiales que están presentes en la versión "inflada". Spolsky resume el artículo con una cita de Jamie Zawinski refiriéndose a Mozilla Application Suite (que más tarde se convirtió en SeaMonkey ):
"Por muy conveniente que sería si fuera cierto, Mozilla no es grande porque esté lleno de basura inútil. Mozilla es grande porque tus necesidades son grandes. Tus necesidades son grandes porque Internet es grande. Hay muchos navegadores web pequeños y sencillos. por ahí que, dicho sea de paso, no hacen casi nada útil. [...] Pero ser una brillante joya de perfección no era un objetivo cuando escribimos Mozilla." [4]
La sobrecarga de software también puede ser un síntoma del efecto del segundo sistema , descrito por Fred Brooks en The Mythical Man-Month .
El término "bloatware" puede aplicarse al software que se ha inflado debido a la ineficiencia o la acumulación de funciones como se describió anteriormente. [3] El término también se refiere comúnmente al software preinstalado en un dispositivo, generalmente por el fabricante del hardware, que en su mayoría no es deseado por el comprador.
El término también puede aplicarse a la acumulación de elementos de software no deseados y no utilizados que quedan después de una desinstalación parcial e incompleta . Estos elementos pueden incluir programas completos, bibliotecas, información de configuración asociada u otros datos. El rendimiento puede deteriorarse en general como resultado de dichos restos, ya que el software o los componentes de software no deseados pueden ocupar memoria, perder tiempo de procesamiento, agregar E/S de disco , consumir almacenamiento y provocar retrasos en el inicio y apagado del sistema. En el peor de los casos, el software sobrante puede interferir con el funcionamiento correcto del software deseado. [5] El bloatware se puede eliminar fácilmente si el usuario tiene acceso root en su dispositivo, aunque el proceso de rooteo tiene sus propias ventajas y desventajas, [6] como anular la garantía del fabricante y que cierto software se niegue a ejecutarse en dispositivos rooteados. [ cita necesaria ]
iTunes de Apple ha sido acusado de estar inflado por los esfuerzos para convertirlo de un simple reproductor multimedia a una plataforma de publicidad y comercio electrónico, [16] [17] y el ex editor de PC World , Ed Bott, acusó a la empresa de hipocresía en su publicidad. ataques a Windows por prácticas similares. [18] En 2019, Apple anunció el cierre inminente del programa, una medida descrita por un comentarista de The Guardian como "muy retrasada", afirmando que el programa se había "inflado barrocamente, una anomalía sorprendente para una empresa que se enorgullece de sí misma". en un diseño elegante y funcional." [19]
Microsoft Windows también ha sido criticado por estar inflado: refiriéndose a Windows Vista y hablando de los nuevos componentes centrales de Windows 7 , muy reducidos, el ingeniero de Microsoft Eric Traut comentó que "Este es el núcleo de Windows 7. Esta es una colección de componentes que Hemos eliminado. Mucha gente piensa que Windows es un sistema operativo realmente grande e inflado, y tengo que admitir que esa puede ser una caracterización justa. Es grande. Contiene muchas cosas. Pero al menos su núcleo, el kernel y los componentes que conforman el núcleo del sistema operativo en realidad están bastante optimizados". [20] [21] Ed Bott también expresó escepticismo, señalando que casi todos los sistemas operativos que Microsoft ha vendido han sido criticados como "inflados" en su primer lanzamiento, incluso aquellos que ahora se consideran exactamente lo contrario, como MS-DOS . [22] Citando a Paul Thurrott, Bott estuvo de acuerdo en que la hinchazón se debe a numerosas características de nivel empresarial incluidas en el sistema operativo que eran en gran medida irrelevantes para el usuario doméstico promedio.
Las aplicaciones de grabación de CD y DVD, como Nero Burning ROM, han sido criticadas por estar infladas. [23] Las funciones superfluas que no están diseñadas específicamente para el usuario final a veces se instalan de forma predeterminada a través de configuraciones rápidas.
Varios blogs de tecnología también han cubierto la cuestión del aumento del bloatware en los teléfonos móviles. Sin embargo, se refieren a un problema diferente, específicamente el de los proveedores de servicios inalámbricos que cargan los teléfonos con software que, en muchos casos, no se puede eliminar fácilmente, si es que se puede eliminar. Esto se ha citado con mayor frecuencia con respecto a los dispositivos Android , aunque este fenómeno existe en teléfonos que ejecutan muchos otros sistemas operativos. [24] [25]
Algunas de las aplicaciones de mensajería actuales más populares , que anteriormente solo se centraban en la mensajería instantánea , han sido criticadas por estar infladas debido a la proliferación de funciones. [26] [27] [28] [29] WeChat agregó funciones adicionales como juegos, servicios de suscripción, billetera electrónica WeChat Pay , [26] un agregador de noticias , centro de comercio electrónico , función de gobierno electrónico [27] , cine sistema de reservas, buscador de restaurantes y empresa de viajes compartidos , [29] que aumentó el tamaño de la aplicación de 2 MB en 2011 a 58 MB en 2018. [ cita necesaria ] Facebook Messenger , que se ha separado de la aplicación de Facebook , es igualmente criticado para agregar funciones adicionales como juegos, bots y funciones copiadas de Snapchat , como Messenger Day (Historias), filtros faciales, una cámara con la capacidad de editar fotos, dibujar garabatos y agregar emojis y pegatinas. [30] [31] En enero de 2018, el jefe de mensajería de Facebook, David A. Marcus , admitió que la aplicación en sí está extremadamente inflada y prometió rediseñar toda la aplicación para eliminar funciones innecesarias y optimizarla. [28] La aplicación Facebook Messenger rediseñada y optimizada se anunció en octubre de 2018, en la que sus funciones se reducen a mensajería, historias, pestaña de descubrimiento y cámara. [32]
Algunas aplicaciones, como GIMP y software con funcionalidad adicional de complementos , utilizan extensiones o complementos que se descargan por separado de la aplicación principal. Estos pueden ser creados por el desarrollador del software o por desarrolladores externos. Los complementos, extensiones y complementos agregan funciones adicionales que, de otro modo, podrían haberse incluido en el programa principal.
Permitir estos complementos, extensiones y/o complementos reduce el espacio utilizado en cualquier máquina, porque aunque la aplicación, la "interfaz del complemento" y todos los complementos combinados son más grandes que la misma funcionalidad compilado en una aplicación monolítica, permite a cada usuario instalar sólo las funciones complementarias particulares que necesita, en lugar de obligar a cada usuario a instalar una aplicación monolítica mucho más grande que incluya todas las funciones disponibles. Esto da como resultado una aplicación "simplificada" o "lista para usar" que se entrega en un paquete compacto pero que está lista para que los usuarios agreguen cualquier funcionalidad faltante.
El software de código abierto puede utilizar una técnica similar utilizando directivas de preprocesador para incluir funciones en tiempo de compilación de forma selectiva. Esto es más fácil de implementar y más seguro que un sistema de complementos, pero tiene la desventaja de que un usuario que desea un conjunto específico de funciones debe compilar el programa desde el código fuente.
A veces el software se vuelve inflado debido al " caracterismo progresivo " [33] ( ley de envoltura del software de Zawinski ). Una forma de reducir ese tipo de sobrecarga se describe en la filosofía Unix de "escribir programas que hagan una cosa y la hagan bien", y dividir lo que sería una única y complicada pieza de software en numerosos componentes más simples que pueden encadenarse usando tuberías , scripts de shell u otras formas de comunicación entre aplicaciones .
Windows 8 Release Preview funciona muy bien en el mismo hardware que impulsa Windows 7
{{cite news}}
: Mantenimiento CS1: URL no apta ( enlace )