stringtranslate.com

Inflación de software

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]

tipos de hinchazón

Inflación del programa

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.

Causas

Ineficiencia del software

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 .

Software de hinchado

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 ]

Ejemplos

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]

Alternativas

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 .

Ver también

Referencias

  1. ^ whatisbloatware.com
  2. ^ Raymond, Eric S. (17 de septiembre de 2003). El arte de la programación Unix (1 ed.). Profesional de Addison-Wesley. ISBN 0131429019. Consultado el 16 de junio de 2007 .(Ver también: El arte de la programación Unix )
  3. ^ ab Spolsky, Joel (2001). "Carta de estrategia IV: Bloatware y el mito 80/20 - Joel sobre el 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". Revista PC .
  6. ^ Mukesh, Bhavesh (4 de marzo de 2016). "Ventajas y desventajas de rootear teléfonos inteligentes Android". El portal de Android .
  7. ^ "Microsoft KB: requisitos de instalación de Windows 95" . Consultado el 22 de julio de 2007 .
  8. ^ "Microsoft KB: requisitos mínimos de hardware para una instalación de Windows 98" . Consultado el 22 de julio de 2007 .
  9. ^ "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 .
  10. ^ "Microsoft KB: requisitos del sistema para los sistemas operativos Windows XP" . Consultado el 22 de julio de 2007 .
  11. ^ "Microsoft KB: requisitos del sistema para Windows Vista" . Consultado el 22 de julio de 2007 .
  12. ^ "Microsoft: requisitos del sistema para Windows 7" . Consultado el 9 de octubre de 2009 .
  13. ^ "Imágenes ISO de vista previa de la versión de Windows 8" . Consultado el 12 de agosto de 2012 . Windows 8 Release Preview funciona muy bien en el mismo hardware que impulsa Windows 7
  14. ^ "Siete cosas que debes recordar si estás probando la vista previa de Windows 10". computerworld.com. Octubre de 2014 . Consultado el 29 de marzo de 2015 .
  15. ^ Lawler, Richard (24 de junio de 2021). "Microsoft está cambiando los requisitos mínimos de Windows 11". El borde . Consultado el 25 de junio de 2021 .
  16. ^ Streza, Steve (7 de marzo de 2007). "¿Qué pasó con iTunes?".
  17. ^ Buchanan, Matt (12 de octubre de 2009). "iTunes 9 será un monstruo social inflado". Gizmodo . Consultado el 14 de enero de 2010 .
  18. ^ Bott, Ed (3 de octubre de 2008). "Adelgazar el instalador de iTunes inflado". ZDNet . Consultado el 14 de enero de 2010 .
  19. ^ Naughton, John (9 de marzo de 2019). "Adiós entonces, iTunes, y gracias por salvar a la industria musical de sí misma". El guardián . Consultado el 10 de marzo de 2019 .
  20. ^ McDougall, Paul (28 de enero de 2008). "La herramienta de software reduce Windows Vista a lo básico". informaciónweek.com .
  21. ^ Bott, Ed (31 de marzo de 2008). "¿MinWin es realmente el nuevo kernel de Windows 7?". ZDNet .
  22. ^ Bott, Ed (13 de marzo de 2006). "¿Windows está hinchado? Siempre ha sido así". ZDNet .
  23. ^ Cassia, Fernando (27 de febrero de 2007). "'Nero Lite 'y' Nero Micro ': a veces, más pequeño es mejor ". El Indagador . Archivado desde el original el 2 de marzo de 2007 . Consultado el 7 de marzo de 2007 .{{cite news}}: Mantenimiento CS1: URL no apta ( enlace )
  24. ^ Gartenberg, Michael (12 de septiembre de 2010). "Enteligencia: ¿Los operadores destruirán la visión de Android?". Engadget . Consultado el 21 de septiembre de 2010 .
  25. ^ Milian, Mark (15 de junio de 2010). "'Junkware 'viene de serie en los teléfonos inteligentes de Verizon y T-Mobile ". Los Ángeles Times . Consultado el 21 de septiembre de 2010 .
  26. ^ ab Bischoff, Paul (12 de febrero de 2014). "Lo que WeChat necesita aprender de Facebook". Tecnología en Asia . Consultado el 16 de febrero de 2020 .
  27. ^ ab Chen, Laurie (22 de julio de 2018). "Por qué los millennials chinos conocedores de la tecnología están abandonando WeChat". Poste matutino del sur de China . Hong Kong . Consultado el 16 de febrero de 2020 .
  28. ^ ab Constine, Josh (16 de enero de 2018). "El inflado Facebook Messenger promete simplificarse en 2018". TechCrunch . Consultado el 16 de febrero de 2020 .
  29. ^ ab "Facebook abre Messenger a aplicaciones de terceros". BBC . 25 de marzo de 2015 . Consultado el 16 de febrero de 2020 .
  30. ^ Brown, Aaron (7 de febrero de 2017). "Facebook casi arruinó a WhatsApp, y ahora arruinó a Messenger". Expreso diario . Consultado el 16 de febrero de 2020 .
  31. ^ Welch, Chris (18 de mayo de 2017). "Cómo sustituir Facebook Messenger por una versión mucho más sencilla y ligera". El borde . Consultado el 16 de febrero de 2020 .
  32. ^ Precio, Rob (23 de octubre de 2018). "Facebook está revisando Messenger para intentar reducir la hinchazón y agregando un modo oscuro". Business Insider . Consultado el 16 de febrero de 2020 .
  33. ^ Adams, Ernest (1 de mayo de 2007). "El cuaderno del diseñador:" el caracteristicismo progresivo produce un lío complicado y abultado ".