34 puntos por xguru 2023-06-29 | 11 comentarios | Compartir por WhatsApp
  • Se publicó en Twitter un video que comparaba la velocidad de una computadora antigua con Windows NT 3.51 y una computadora nueva con Windows 11, y se volvió bastante viral
    • Ambas hacen las mismas acciones: abrir y cerrar el símbolo del sistema, el explorador, el Bloc de notas y Paint
    • En la computadora antigua se ejecuta de inmediato, pero en la nueva es lento
  • La latencia de la interfaz de usuario en las computadoras modernas es muy mala y está empeorando
  • Se ha dicho que la comparación no era justa porque el hardware usado era una desktop y una laptop (Surface Go)
  • Se volvió a comparar instalando Windows 2000 en una máquina K7-600 y Windows 11 en una Mac Pro 2013 (Xeon de 6 núcleos + 32GB), pero el resultado fue parecido

Evolución de las computadoras

  • Desde los años 2000 ha habido avances en muchas direcciones: gráficos sorprendentes, monitores de alta resolución, redes ultrarrápidas, edición de video en tiempo real, etc.
  • También hubo mucho progreso en I/O, porque en los sistemas antiguos el I/O de disco siempre era la parte más débil
    • Los disquetes eran inestables y lentos; los CD/DVD eran algo más confiables, pero seguían siendo lentos; y los HDD eran el cuello de botella de muchas cosas
    • El I/O aleatorio empezó a llegar a sus límites físicos
  • Con la aparición de los SSD y su adopción en desktop, este problema de I/O aleatorio empezó a resolverse
    • De pronto todo se volvió más rápido: arranque, carga de juegos, abrir carpetas con muchísimos archivos, etc.
  • También se volvió más fácil instalar hardware nuevo, las conexiones inalámbricas se masificaron, y hubo internacionalización de textos y apps (aunque se reconoce que Unicode no fue ni fácil ni barato)
  • En muchos sentidos la situación mejoró, y tenemos más poder que nunca. De no ser así, no podríamos realizar en teléfonos pequeños tareas como procesamiento fotográfico con ML, algo inimaginable en los 2000

Latencia terrible

  • Pero ninguno de estos avances explica por qué la latencia de la UI hoy es tan extremadamente lenta
  • Los avances del hardware deberían haber mejorado esta situación

Ejemplos

  • El Bloc de notas hasta hace poco era una app nativa y arrancaba rápido, pero al reescribirse como app UWP se volvió lento. Se volvió muy lento, pero aun así sigue careciendo de funciones. Una pérdida de velocidad sin ningún beneficio para el usuario
  • Windows Terminal es mucho mejor que antes, pero es perceptiblemente pesado. Si se añade PowerShell, abrir una nueva ventana del terminal puede tardar varios segundos a menos que se use hardware de gama alta
  • macOS está mejor que Windows, pero también tiene problemas. Abrir la ventana de configuración es mucho más rápido en máquinas antiguas
  • Linux probablemente es el menos afectado por este problema. Incluso en una PC de hace 11 años, Fedora Linux 38, lanzado en abril de 2023, funciona bien. Pero eso también es una ilusión: si ejecutas apps modernas que no fueron desarrolladas específicamente para Linux, el tiempo de arranque se vuelve lento y el rendimiento en general cae
  • Lo que más me impactó fue cuando entré a Google en 2009
    • En ese tiempo Google Search y Gmail presumían un rendimiento excelente y eran ejemplos para todos
    • Pero me sorprendió mucho ver lo lentas que eran las herramientas internas de línea de comandos
    • Creo que el hecho de que empujaran sin descanso las web apps, sin importar el costo, ayudó a crear la situación en la que estamos hoy

Causas

  • ¿Por qué pasó todo esto? Es fácil decir "bloat", pero es difícil definirlo
    • El bloat puede justificarse: cada persona piensa distinto sobre qué es bloat
  • Lo que vuelve lento todo esto son las "prioridades"
    • Ya nadie prioriza el rendimiento salvo en casos importantes como juegos o transcodificación de video
    • Lo que la gente (y las empresas) prioriza es el "tiempo del desarrollador": Rust y Electron
  • Se usa Electron porque desarrollar apps nativas por separado implica trabajo duplicado
    • Usarlo es fácil, pero tiene un gran impacto en la latencia en desktop
    • Como en los casos de 1Password o Spotify, se reescribieron en Electron para ofrecer una experiencia unificada y reducir costos
    • Pero esa reducción de costos es para la empresa, no para el usuario
    • Ese ahorro de costos nos impone un impuesto a quienes lo usamos todos los días
  • Otra decisión que aumenta la latencia es la adopción masiva de lenguajes managed e interpretados
    • JDK/CLR optimizan bien procesos de larga duración, pero el arranque rápido no es algo que manejen bien

Las mejoras de una sola vez se agotaron (One-off improvements eaten away)

  • Para terminar, volviendo al tema del hardware y con una nota pesimista
  • La mejora extraordinaria que trajeron los SSD fue un cambio de una sola vez
    • Los HDD siguieron volviéndose más rápidos, pero no ofrecían el I/O aleatorio veloz que necesita el desktop
    • El salto a SSD trajo una mejora de otro orden, pero ese beneficio solo podía disfrutarse una vez
    • No existe otra tecnología que ofrezca una experiencia tan transformadora
    • Por eso, una vez que los beneficios de esta nueva tecnología desaparecen por culpa de software descuidado, volvemos al punto de partida
    • Claro, los SSD siguen siendo cada vez más rápidos, pero no generan una diferencia tan enorme como el paso de HDD a SSD
  • Se puede comprobar usando versiones recientes de Windows/macOS sin SSD
  • Por eso esto también me hace preocuparme por Apple Silicon
    • ¿Recuerdan el rendimiento sobresaliente del M1 en su lanzamiento, su batería larguísima y la ausencia de ruido de ventilador?
    • Si seguimos por este camino descuidado, esas ventajas también desaparecerán, y cuando eso ocurra ya será demasiado tarde
  • Mejorar el rendimiento de aplicaciones existentes es técnicamente muy difícil, y dentro de una organización también es casi imposible volverlo una prioridad
  • Entonces, ¿podrán los arquitectos de computadoras salvarnos con otro cambio tecnológico revolucionario? No quiero depender de eso. No porque tal cambio sea imposible, sino porque no debería hacer falta

Versión resumida por GN⁺ (se deja como registro)

  • Un hilo de Twitter comparó la capacidad de respuesta entre una computadora antigua y una nueva, y obtuvo 8.8K me gusta.
  • En el video, las apps de la computadora antigua se abren de inmediato, mientras que las de la computadora nueva muestran una latencia considerable.
  • El autor se pregunta por qué, a pesar de los avances del hardware, la latencia de la interfaz de usuario en las computadoras modernas ha empeorado.
  • Se corrigieron fallas en la comparación y se obtuvo el mismo resultado.
  • Se discutieron avances tecnológicos como gráficos, monitores de alta resolución y redes rápidas.
  • Se plantea que la latencia de la interfaz de usuario en las computadoras modernas es muy mala y está empeorando.
  • Se presentaron como ejemplos apps lentas en Windows, macOS y Linux.
  • Se propusieron como causas del problema el software pesado, los frameworks y los lenguajes managed.
  • Se expresó preocupación por el futuro de Apple Silicon, ya que el software descuidado podría anular las ventajas de los SSD.
  • Mejorar el rendimiento de las aplicaciones existentes es difícil tanto técnica como organizacionalmente.
  • Según el arquitecto de computadoras, un cambio tecnológico revolucionario podría no salvarnos.
  • El trabajo remoto no es una solución al problema de la latencia.
  • El desarrollo open source de los 90 y los 2000 ya permitía trabajo completamente distribuido y asíncrono.
  • La latencia en computación es un problema al menos desde 1977.
  • La mejor computadora en términos de latencia que encontró Dan Luu es de 1983, pero no puede manejar cargas de trabajo modernas.

11 comentarios

 
nuthatch 2023-06-29

Eligieron el mantenimiento en lugar del rendimiento, y quizá hemos llegado hasta aquí pensando que ese costo se compensaría con el avance del hardware.
Cuando mi MacBook Air de 2010 se volvió demasiado lenta, de alguna manera le instalé Snow Leopard, y era increíblemente rápida. Claro, no la uso de verdad, pero...

 
googol 2023-06-29

Se siente real eso de que las empresas ya no priorizan el rendimiento.

 
anyjava 2023-06-29

Pero la reducción de costos es para la empresa, no para el usuario.

Esa parte me deja pensando mucho.

 
edunga1 2023-06-29

Gracias. Lo leí sintiéndome identificado.
Cuando abres el menú contextual en el escritorio de Windows, tanto hace 20 años como ahora sigue yendo lento mientras ves el reloj de arena (después de la primera vez mejora un poco, pero igual molesta muchísimo).
Está claro que el hardware se vuelve más rápido, pero parece que el software no logra seguirle el ritmo.

 
ruinnel 2023-06-29

Creo que vi un sitio que reunía solo aplicaciones ligeras mientras hablaba de algo parecido (probablemente era del lado de Linux)... pero ahora que lo busco, no me aparece jaja

 
nicewook 2023-06-29

Lo leí con agradecimiento.

 
iolothebard 2023-06-29

¿Qué es lo importante?

 
devjeonghwan 2023-06-29

La UI de la época en que todo se implementaba solo con WinAPI era limpia y ágil.
Hoy en día, con frameworks de UI por todos lados y esas apps basadas en web... hace falta muchos recursos para levantar motores web o de frameworks.

 
xguru 2023-06-29

Es un artículo que apareció en GN⁺, pero como me pareció difícil de entender con el resumen de la IA, lo volví a resumir yo mismo.

 
botplaysdice 2023-06-30

¿Ven? Les dije que tenía razón jaja...

Se siente como cuando Lee Sedol ganó... nuestra seguridad laboral.... por ahora todavía estará bien, ¿no? :(

 
GN⁺ 2023-06-29
Opiniones de Hacker News
  • Los usuarios jóvenes no han experimentado el verdadero rendimiento en la pila de software
  • Los ingenieros de software son ineficientes e ignoran la computación paralela
  • A la gente no técnica no le importa la lentitud de la computación
  • Las medidas de seguridad pueden afectar la latencia de las aplicaciones de escritorio
  • En macOS, Quartz Extreme y Metal mejoran el rendimiento gráfico
  • La optimización de software es importante para la velocidad
  • Rust no tiene una curva de aprendizaje pronunciada
  • Es importante celebrar los pequeños logros en computación
  • Deberíamos esperar más de nuestro hardware
  • Las interfaces dinámicas contribuyen a la degradación del rendimiento
  • Linux funciona rápido en hardware de bajos recursos, pero las aplicaciones multiplataforma tienen mal rendimiento
  • Los frameworks modernos de aplicaciones pueden ser una causa del arranque lento de las apps