Inflación del software

Proceso de degradación del rendimiento de los programas informáticos

La hinchazón del software es un proceso por el cual las versiones sucesivas de un programa informático se vuelven perceptiblemente más lentas, utilizan más memoria, espacio en disco o potencia de procesamiento, o tienen mayores requisitos de hardware que la versión anterior, mientras que solo realizan mejoras dudosas perceptibles para el usuario o sufren una expansión de funciones . El término no se aplica de manera consistente; los usuarios finales lo utilizan a menudo de manera peyorativa , incluso 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 hinchazón percibida puede ocurrir porque el software atiende a un mercado grande y diverso con muchos requisitos diferentes. La mayoría de los usuarios finales sentirán que solo necesitan un subconjunto limitado de las funciones disponibles y considerarán las demás como una hinchazón innecesaria, incluso si los usuarios finales con diferentes requisitos requieren esas funciones.

La hinchazón real (medible) puede ocurrir debido a la falta de énfasis en la eficiencia algorítmica a 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 scripting con fines de conveniencia cuando se reducen las limitaciones del desarrollador. La percepción de una mayor productividad del desarrollador, en el caso de practicar el desarrollo dentro de entornos de máquinas virtuales, proviene de que los desarrolladores ya no tienen en cuenta las limitaciones y el uso de los recursos durante el diseño y el desarrollo; esto permite que el producto se complete más rápido, pero da como resultado aumentos en los requisitos de hardware del usuario final y/o un rendimiento comprometido como resultado.

El término "bloatware" también se utiliza para describir software preinstalado no deseado o programas incluidos en el paquete . [1]

Tipos de hinchazón

Inflación del programa

En programación informática, 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 que desperdicia recursos.

Causas

Ineficiencia del software

Los desarrolladores de software que trabajaron en la industria durante la década de 1970 tenían limitaciones severas en cuanto a potencia de procesamiento, espacio en disco y memoria. Se tenía en cuenta cada byte y ciclo de reloj , y se dedicaba mucho trabajo a adaptar los programas a los recursos disponibles. Lograr esta eficiencia era uno de los valores más importantes de los programadores informáticos, y los mejores programas solían llamarse " elegantes ", un término utilizado por los matemáticos para describir una prueba ordenada, parsimoniosa y potente.

En el siglo XXI, la situación se había revertido. Los recursos se consideraban baratos y la rapidez de codificación y las características principales para el marketing se consideraban prioridades. [2] En parte, esto se debe a que los avances tecnológicos han aumentado desde entonces 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 (véase la ley de Moore ). Además, la difusión de las computadoras en todos los niveles de la vida empresarial y doméstica ha producido una industria del software mucho más grande que en la década de 1970. Ahora los programas suelen ser producidos en serie 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 solo en una parte del todo, en una o más subrutinas . [ cita requerida ]

Por último, las herramientas y los enfoques de desarrollo de software suelen dar lugar a cambios en todo el programa para dar cabida a cada característica, lo que lleva a una inclusión a gran escala de código que afecta al funcionamiento principal del software y es necesario para dar soporte a funciones que, por sí mismas, pueden utilizarse sólo en raras ocasiones. En particular, los avances en los recursos disponibles han dado lugar a herramientas que permiten un desarrollo más sencillo del código, una vez más con menos prioridad dada a la eficiencia final.

Otra causa de la saturación son los estándares y productos que compiten de forma independiente, lo que puede generar una demanda de integración. Ahora hay más sistemas operativos, navegadores, protocolos y formatos de almacenamiento que antes, lo que provoca saturación en los programas debido a problemas de interoperabilidad. Por ejemplo, un programa que antes solo podía guardar en formato de texto ahora debe guardarlo 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, si bien el 80% de los usuarios solo 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 funciones especiales que están presentes en la versión "hinchada". Spolsky resume el artículo con una cita de Jamie Zawinski que hace referencia a Mozilla Application Suite (que luego se convirtió en SeaMonkey ):

"Aunque sería conveniente 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 simples que, por cierto, no hacen casi nada útil. [...] Pero ser una joya brillante de la perfección no era un objetivo cuando escribimos Mozilla". [4]

La hinchazón del software también puede ser un síntoma del efecto del segundo sistema , descrito por Fred Brooks en The Mythical Man-Month .

Programas inflados

El "bloatware" es un software que se ha vuelto demasiado pesado debido a la ineficiencia o la acumulación de funciones como se describió anteriormente. [3] El término también se usa comúnmente para el software preinstalado incluido 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 sin usar 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 no deseado o los componentes de software pueden ocupar tanto la memoria del disco duro como la RAM, desperdiciar tiempo de procesamiento, agregar E/S de disco y causar demoras en el inicio y apagado del sistema. En los peores casos, el software restante puede interferir con el funcionamiento correcto del software deseado. [5]

En los dispositivos Android , parte del bloatware se puede ocultar de una cuenta de usuario con ADB , aunque esto no elimina la aplicación y seguirá ocupando espacio en el disco, no se ejecutará y ralentizará el sistema. [6] [7] Al desbloquear el gestor de arranque , los usuarios pueden eliminar los archivos del bloatware, instalar un firmware personalizado u obtener privilegios de root que permiten desinstalar la aplicación por completo. [8]

Ejemplos

Comparación de los requisitos mínimos de hardware de Microsoft Windows (para versiones x86 )
Versión de WindowsProcesadorMemoriaDisco duro
Windows 95 [9] (1995)25 MHz4MB~50 MB
Windows 98 [10] (1998)66 MHz16 MB~200 MB
Windows 2000 [11] (1999)133 MHz32 MB650 MB
Windows XP [12] (2001)233 MHz64 MB1,5 GB
Windows Vista [13] (2006)800 MHz512 MB15 GB
Windows 7 [14] (2009)1 GHz1 GB16 GB
Windows 8 [15] (2012)1 GHz1 GB16 GB
Windows 10 [16] (2015)1 GHz1 GB16 GB
Windows 11 [17] (2021)Doble núcleo de 1 GHz
y 64 bits
4 GB64 GB

Se ha acusado a iTunes de Apple de estar inflado por los esfuerzos para convertirlo de un simple reproductor multimedia a una plataforma de comercio electrónico y publicidad, [18] [19] y el ex editor de PC World, Ed Bott, acusó a la compañía de hipocresía en sus ataques publicitarios a Windows por prácticas similares. [20] En 2019, Apple anunció el cierre inminente del programa, una medida descrita por un comentarista de The Guardian como "muy esperada", afirmando que el programa se había "vuelto barrocamente hinchado, una anomalía sorprendente para una empresa que se enorgullece de su diseño elegante y funcional". [21]

Microsoft Windows también ha sido criticado por estar inflado: con referencia a Windows Vista y discutiendo los nuevos y muy reducidos componentes centrales de Windows 7 , 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 en Windows como este sistema operativo realmente grande e inflado, y esa puede ser una caracterización justa, tengo que admitirlo. Es grande. Contiene muchas cosas en él. Pero en su núcleo, el núcleo y los componentes que forman el núcleo mismo del sistema operativo en realidad están bastante optimizados". [22] [23] Ed Bott también expresó escepticismo, señalando que casi todos los sistemas operativos que Microsoft ha vendido han sido criticados por estar "inflados" en su primer lanzamiento, incluso aquellos que ahora se consideran exactamente lo opuesto, como MS-DOS . [24] 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 ser demasiado pesadas. [25] A veces se instalan de forma predeterminada funciones superfluas que no están diseñadas específicamente para el usuario final a través de configuraciones rápidas.

Varios blogs de tecnología también han abordado el problema del aumento del bloatware en los teléfonos móviles. Sin embargo, se refieren a un problema diferente, en concreto, el de las compañías de telefonía móvil que cargan los teléfonos con software que, en muchos casos, no se puede eliminar fácilmente, si es que se puede. Esto se ha citado con más frecuencia en relación con los dispositivos Android , aunque este fenómeno existe en teléfonos que utilizan muchos otros sistemas operativos. [26] [27]

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 acumulación de funciones. [28] [29] [30] [31] WeChat agregó funciones adicionales como juegos, servicios de suscripción, billetera electrónica WeChat Pay , [28] un agregador de noticias , centro de comercio electrónico , función de gobierno electrónico , [29] sistema de reserva de cine, buscador de restaurantes y empresa de viajes compartidos , [31] lo que aumentó el tamaño de la aplicación de 2 MB en 2011 a 58 MB en 2018. [ cita requerida ] Facebook Messenger , que se ha separado de la aplicación de Facebook , es criticado de manera similar por agregar funciones adicionales como juegos, bots y funciones copiadas de Snapchat como Messenger Day (Stories), filtros faciales, una cámara con la capacidad de editar fotos, dibujar garabatos y agregar emojis y calcomanías. [32] [33] 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 simplificarla. [30] La aplicación Facebook Messenger rediseñada y simplificada se anunció en octubre de 2018, en la que sus funciones se reducen a mensajería, historias, pestaña de descubrimiento y cámara. [34]

Alternativas

Algunas aplicaciones, como GIMP y el software con funciones adicionales a través 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 haber estado incluidas 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 compilada en una aplicación monolítica, permite a cada usuario instalar solo las características del complemento que necesita, en lugar de obligar a cada usuario a instalar una aplicación monolítica mucho más grande que incluye todas las características disponibles. Esto da como resultado una aplicación "reducida" 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 a un " funcionalismo progresivo " [35] ( ley de Zawinski sobre la envoltura del software ). Una forma de reducir ese tipo de hinchazón se describe mediante 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 se pueden encadenar entre sí mediante tuberías , scripts de shell u otras formas de comunicación entre aplicaciones .

Riesgo de seguridad

La hinchazón del software como vulnerabilidad

La saturación del software puede generar más vulnerabilidades debido a la dificultad de gestionar una gran cantidad de código y dependencias. Además, puede dificultar que los desarrolladores de software comprendan el código que envían, lo que aumenta la dificultad de detectar y solucionar vulnerabilidades. [36] [37]

El bloatware como vulnerabilidad

Aunque el bloatware no es un malware y no está diseñado con fines maliciosos, puede introducir algunas vulnerabilidades de manera involuntaria y puede hacer que la computadora del usuario tenga un mayor riesgo de infectarse con un virus informático o ransomware . [38] [39]

Véase también

Referencias

  1. ^¿Qué es Bloatware ?
  2. ^ Raymond, Eric S. (17 de septiembre de 2003). El arte de la programación Unix (1.ª edición). Addison-Wesley Professional. ISBN 0131429019. Consultado el 16 de junio de 2007 .(Ver también: El arte de la programación Unix )
  3. ^ ab Spolsky, Joel (2001). "Strategy Letter IV: Bloatware and the 80/20 Myth - Joel on Software" (Carta de estrategia IV: Bloatware y el mito 80/20 - Joel sobre software) . Consultado el 2 de octubre de 2006 .
  4. ^ Zawinski, Jamie (1998). "huevos de Pascua" . Consultado el 9 de enero de 2008 .
  5. ^ Santo Domingo, Joel (13 de febrero de 2012). "Cómo eliminar el bloatware". PC Magazine .
  6. ^ "Referencia de ADB". GitHub . Consultado el 11 de agosto de 2024 .
  7. ^ Conway, Adam (25 de agosto de 2021). «Cómo desinstalar bloatware de operador/OEM sin acceso root». XDA . Consultado el 11 de agosto de 2024 .
  8. ^ Elmore, John (10 de enero de 2024). "Cuáles son los beneficios de desbloquear el gestor de arranque: exploración de las ventajas y la libertad del usuario" . Consultado el 11 de agosto de 2024 .
  9. ^ "Microsoft KB: Requisitos de instalación de Windows 95" . Consultado el 22 de julio de 2007 .
  10. ^ "Microsoft KB: Requisitos mínimos de hardware para la instalación de Windows 98" . Consultado el 22 de julio de 2007 .
  11. ^ "Introducción a Windows 2000 Server: Capítulo 3: Planificación de la instalación de Windows 2000 Server". Microsoft . Consultado el 29 de agosto de 2007 .
  12. ^ "Microsoft KB: Requisitos del sistema para sistemas operativos Windows XP" . Consultado el 22 de julio de 2007 .
  13. ^ "Microsoft KB: Requisitos del sistema para Windows Vista" . Consultado el 22 de julio de 2007 .
  14. ^ "Microsoft: Requisitos del sistema para Windows 7" . Consultado el 9 de octubre de 2009 .
  15. ^ "Imágenes ISO de la versión preliminar de Windows 8" . Consultado el 12 de agosto de 2012. La versión preliminar de Windows 8 funciona perfectamente en el mismo hardware que utiliza Windows 7.
  16. ^ "7 cosas que debes recordar si estás probando la versión preliminar de Windows 10". computerworld.com. Octubre de 2014. Consultado el 29 de marzo de 2015 .
  17. ^ Lawler, Richard (24 de junio de 2021). «Microsoft está cambiando los requisitos mínimos de Windows 11». The Verge . Consultado el 25 de junio de 2021 .
  18. ^ Streza, Steve (7 de marzo de 2007). "¿Qué pasó con iTunes?".
  19. ^ Buchanan, Matt (12 de octubre de 2009). «iTunes 9 será un monstruo social inflado». Gizmodo . Consultado el 14 de enero de 2010 .
  20. ^ Bott, Ed (3 de octubre de 2008). "Reducir el tamaño del instalador de iTunes". ZDNet . Consultado el 14 de enero de 2010 .
  21. ^ Naughton, John (9 de marzo de 2019). "Adiós, iTunes, y gracias por salvar a la industria musical de sí misma". The Guardian . Consultado el 10 de marzo de 2019 .
  22. ^ McDougall, Paul (28 de enero de 2008). "Software Tool reduce Windows Vista a lo básico". informationweek.com .
  23. ^ Bott, Ed (31 de marzo de 2008). "¿Es MinWin realmente el nuevo núcleo de Windows 7?". ZDNet .
  24. ^ Bott, Ed (13 de marzo de 2006). "¿La hinchazón de Windows? Siempre ha sido así". ZDNet .
  25. ^ Cassia, Fernando (27 de febrero de 2007). «'Nero Lite' y 'Nero Micro': a veces, cuanto más pequeño, mejor». The Inquirer . Archivado desde el original el 2 de marzo de 2007. Consultado el 7 de marzo de 2007 .{{cite news}}: CS1 maint: unfit URL (link)
  26. ^ Gartenberg, Michael (12 de septiembre de 2010). "Entelligence: Will carriers destroy the Android vision?" [¿Los operadores destruirán la visión de Android?]. Engadget . Consultado el 21 de septiembre de 2010 .
  27. ^ Milian, Mark (15 de junio de 2010). "El 'Junkware' viene de serie en los teléfonos inteligentes de Verizon y T-Mobile". Los Angeles Times . Consultado el 21 de septiembre de 2010 .
  28. ^ ab Bischoff, Paul (12 de febrero de 2014). "Lo que WeChat necesita aprender de Facebook". Tech in Asia . Consultado el 16 de febrero de 2020 .
  29. ^ ab Chen, Laurie (22 de julio de 2018). "Por qué los millennials chinos expertos en tecnología están abandonando WeChat". South China Morning Post . Hong Kong . Consultado el 16 de febrero de 2020 .
  30. ^ ab Constine, Josh (16 de enero de 2018). "El hinchado Facebook Messenger promete simplificarse en 2018". TechCrunch . Consultado el 16 de febrero de 2020 .
  31. ^ ab "Facebook abre Messenger a aplicaciones de terceros". BBC . 25 de marzo de 2015 . Consultado el 16 de febrero de 2020 .
  32. ^ Brown, Aaron (7 de febrero de 2017). «Facebook casi arruinó WhatsApp, y ahora ha arruinado Messenger». Daily Express . Consultado el 16 de febrero de 2020 .
  33. ^ Welch, Chris (18 de mayo de 2017). «Cómo reemplazar Facebook Messenger con una versión mucho más simple y liviana». The Verge . Consultado el 16 de febrero de 2020 .
  34. ^ Price, Rob (23 de octubre de 2018). "Facebook está renovando Messenger para intentar reducir la sobrecarga y agregar un modo oscuro". Business Insider . Consultado el 16 de febrero de 2020 .
  35. ^ Adams, Ernest (1 de mayo de 2007). "El cuaderno del diseñador: "el caracterismo progresivo produce un desorden inflado y complicado".
  36. ^ Bert Hubert. "Por qué la hinchazón sigue siendo la mayor vulnerabilidad del software". IEEE .}
  37. ^ Bert Hubert. "Por qué la hinchazón sigue siendo la mayor vulnerabilidad del software: un alegato a favor del software lean en 2024". IEEE .
  38. ^ "Definición de bloatware". Fortinet . Algunos bloatware también introducen vulnerabilidades en el equipo que pueden facilitar su infección con malware, incluido ransomware o scareware.}
  39. ^ "¿Qué es el bloatware y cómo eliminarlo?". Kaspersky .
Retrieved from "https://en.wikipedia.org/w/index.php?title=Software_bloat&oldid=1251871361"