2 puntos por GN⁺ 2025-02-10 | 1 comentarios | Compartir por WhatsApp
  • Resumen del argumento de Jonathan Blow

    • La transmisión de información entre generaciones se está diluyendo.
    • La práctica es más importante que la teoría para mantener la tecnología.
    • El software opera el mundo.
    • La abstracción fomenta la ignorancia sobre la programación de bajo nivel.
    • Si se olvida el conocimiento de bajo nivel, no será posible mantener el software crítico y la civilización colapsará.
  • Críticas y contraargumentos

    • El argumento de Blow contiene muchos errores y malentendidos.
    • La veracidad de la información es importante, y la información de Blow es incorrecta en varios aspectos.
    • La métrica de "five nines" (99.999% de disponibilidad) todavía se sigue usando.
    • El software robusto sigue existiendo y el avance tecnológico continúa.
    • La afirmación de que la abstracción lleva a la pérdida de capacidades es exagerada.
  • Desarrollo tecnológico y abstracción

    • Muchos programadores no quieren lidiar con la gestión de memoria ni con punteros.
    • Sigue habiendo muchas personas que escriben código en C y ensamblador.
    • Nuevos lenguajes como Rust ponen énfasis en la robustez.
    • La abstracción contribuye al desarrollo de nuevas tecnologías.
  • La controversia sobre la productividad en Facebook

    • El verdadero producto de Facebook es una plataforma de entrega de anuncios.
    • Muchos programadores contribuyen a mejorar los sistemas de publicidad.
  • Comparación entre el pasado y el presente

    • El entorno de desarrollo de software del pasado es muy distinto al actual.
    • Las computadoras modernas son mucho más robustas que las del pasado.
    • A medida que aumentan las expectativas de los usuarios, también crece la complejidad del software.
  • Abstracción y pérdida de conocimiento

    • La abstracción puede acelerar la pérdida de conocimiento.
    • Pero la abstracción también les da a muchas personas la oportunidad de expresar su creatividad.
    • Lo importante es mantener una base técnica capaz de sostener los sistemas críticos.
  • Conclusión

    • El argumento de Blow tiene algo de validez, pero en muchos puntos es exagerado y parte de malentendidos.
    • La complejidad del software y la abstracción son problemas que se pueden resolver.
    • Los problemas más grandes del mundo digital son la privacidad y la libertad.

1 comentarios

 
GN⁺ 2025-02-10
Opiniones de Hacker News
  • Doy clases de sistemas en Montana State, y muchas veces mis estudiantes no entienden qué es un sistema de archivos cuando empiezan el curso

    • No coincido del todo con Blow, pero sí creo que hace falta una educación estilo NAND-to-Tetris para estudiantes de secundaria en adelante y para estudiantes técnicos
    • Uso modelos "a la antigua" como Little Man Computer y un emulador simple de MIPS para ayudar a que los estudiantes entiendan los orígenes de la tecnología
    • Me da risa ver libros modernos sobre arquitecturas de 64 bits
    • Conectar la tecnología con sus fundamentos es un problema difícil
  • Estoy de acuerdo con tu opinión. Vi la charla de Blow y creo que la crítica es importante

    • Cuando Blow dice que "no pueden dibujar un píxel en la pantalla", creo que tiene razón
    • Soy programador de motores de juego en una empresa mediana de videojuegos, y cada vez es más difícil contratar a alguien que pueda trabajar en código gráfico
    • DX12 exige mucho más de los programadores que la generación anterior (DX11), y Microsoft también reconoce que aprender DX12 es muy difícil sin experiencia previa con APIs gráficas
    • Estas APIs están pensadas para desarrolladores que quieren superar las limitaciones de las tarjetas gráficas e implementar optimizaciones de bajo nivel, pero ahora se volvieron el estándar de la industria y son difíciles de enseñar a gente sin experiencia
    • Si no hay cambios, la base de contratación va a seguir reduciéndose
  • Cuando un viejo desarrollador web se queja de las abstracciones, está apuntando a los desarrolladores de React

    • Cuando un desarrollador de Python se queja de las abstracciones, está apuntando a los viejos desarrolladores web
    • Cuando un desarrollador de aplicaciones en C++ se queja de las abstracciones, está apuntando a los desarrolladores de Python
    • Cuando un desarrollador de firmware se queja de las abstracciones, está apuntando a los desarrolladores de aplicaciones
    • Cuando un ingeniero eléctrico se queja de las abstracciones, está apuntando a los desarrolladores de firmware
    • Poner el límite de la "abstracción excesiva" según el conocimiento propio y luego llamar a todo lo demás "la destrucción de la civilización" es una postura peculiar
  • Cosas como JavaScript en el servidor y React han convertido la web en un caos de desarrollo de software

    • Muchos chicos no saben que HTML se renderiza en el navegador y creen que React es lo que se renderiza en el navegador
    • Es absurdo que el CEO de Vercel piense que React es el kernel de Linux del desarrollo
  • Blow suele señalar cosas muy buenas sobre el desarrollo, pero a menudo pierde el punto central

    • Ha logrado cosas impresionantes y tiene ideas que vale la pena escuchar, pero a veces dice tonterías
    • Creo que lo de la caída de la civilización es una de esas tonterías, y agradezco la refutación que compartió el OP
    • No voy a hablar de Casey Muratori; intenta hacer lo mismo que Blow, pero ni siquiera le salen bien las partes buenas
  • Hay muchos problemas en el entorno moderno de software, y creo que la abstracción excesiva sí es uno de ellos

    • Pero el extremo opuesto también es malo, y la gente romantiza demasiado el pasado
    • No solo había problemas de cuelgues y reinicios; incluso los sistemas que buscaban compatibilidad también sufrían problemas de inconsistencias
    • Incluso en el sistema moderno menos confiable (Windows 11), mi computadora es más confiable que cualquier computadora anterior a 2010
    • Incluso puede ejecutar software escrito para Windows 95
  • No toda simplificación es abstracción. No toda abstracción es simplificación

    • Buscar la simplificación normalmente es lo que motiva la abstracción
    • No creo que la abstracción esté matando al software ni a la civilización, pero las malas abstracciones sí perjudican la flexibilidad y la accesibilidad
    • Casi cualquier lenguaje tiene como ejemplo el azúcar sintáctico
    • El problema no es que cierto elemento haga que uno se equivoque más, sino que es difícil usar bien las herramientas para resolver problemas complejos
  • Hay muchísimas malas abstracciones. Por la "religión de la velocidad" en la tecnología y la arrogancia, muchas veces todo se queda en el primer intento

    • Cuando algo se vuelve parte de un proyecto popular, otros lo imitan
    • Si eso se repite durante 10 o 20 años, termina generando un caos enorme
    • Me gusta la charla de Jonathan Blow y vuelvo a verla una vez al año
    • Dice cosas que no deberían ser polémicas, pero muchos desarrolladores saben que no están dando lo mejor de sí
  • El autor pertenece a una generación nueva y no entiende lo que decía Blow

    • Si dices que Figma está destruyendo el mundo del diseño, los diseñadores jóvenes creen que todo está bien
    • Como no crecieron en ese entorno, es menos probable que aprendan el equivalente en cultura y experiencia
  • No estoy de acuerdo con la afirmación de que "si olvidamos las cosas de bajo nivel, la civilización colapsará"

    • Hay demasiada complejidad en usar sistemas de bajo nivel para modelar procesos de alto nivel
    • La complejidad es el problema, y hay que minimizarla y evitar la complejidad accidental