2 Punkte von GN⁺ 2025-02-10 | 1 Kommentare | Auf WhatsApp teilen
  • Zusammenfassung von Jonathan Blows Argumentation

    • Die Weitergabe von Informationen zwischen Generationen wird verwässert.
    • Für die Aufrechterhaltung von Technik ist Praxis wichtiger als Theorie.
    • Software steuert die Welt.
    • Abstraktion fördert Unwissen über Low-Level-Programmierung.
    • Wenn Low-Level-Wissen verloren geht, kann wichtige Software nicht mehr gewartet werden, was zum Zusammenbruch der Zivilisation führen würde.
  • Kritik und Gegenargumente

    • Blows Behauptungen enthalten viele Fehler und Missverständnisse.
    • Die Wahrhaftigkeit von Informationen ist wichtig, und Blows Angaben sind in vielerlei Hinsicht falsch.
    • Die Kennzahl "Five nines" (99,999 % Verfügbarkeit) wird weiterhin verwendet.
    • Robuste Software existiert weiterhin, und der technische Fortschritt geht weiter.
    • Die Behauptung, Abstraktion führe zu Kompetenzverlust, ist übertrieben.
  • Technologischer Fortschritt und Abstraktion

    • Viele Programmierer möchten sich nicht mit Speicherverwaltung und Zeigern beschäftigen.
    • Es gibt weiterhin viele Menschen, die C- und Assembler-Code schreiben.
    • Neue Sprachen wie Rust legen den Schwerpunkt auf Robustheit.
    • Abstraktion trägt zur Weiterentwicklung neuer Technologien bei.
  • Die Debatte über Produktivität bei Facebook

    • Facebooks eigentliches Produkt ist eine Plattform zur Auslieferung von Werbung.
    • Viele Programmierer tragen dazu bei, Werbesysteme zu verbessern.
  • Vergleich von Vergangenheit und Gegenwart

    • Die frühere Umgebung der Softwareentwicklung unterscheidet sich stark von der heutigen.
    • Moderne Computer sind deutlich robuster als früher.
    • Mit steigenden Erwartungen der Nutzer nimmt die Komplexität von Software zu.
  • Abstraktion und Wissensverlust

    • Abstraktion kann den Verlust von Wissen beschleunigen.
    • Gleichzeitig gibt Abstraktion vielen Menschen die Möglichkeit, kreativ zu sein.
    • Entscheidend ist, die technische Grundlage zu erhalten, mit der wichtige Systeme gewartet werden können.
  • Fazit

    • Blows Argumentation ist in Teilen berechtigt, in vielen Punkten jedoch übertrieben und missverständlich.
    • Softwarekomplexität und Abstraktion sind lösbare Probleme.
    • Die größeren Probleme der digitalen Welt sind Privatsphäre und Freiheit.

1 Kommentare

 
GN⁺ 2025-02-10
Hacker-News-Kommentare
  • Ich unterrichte Systemkurse an der Montana State, und oft verstehen Studierende zu Beginn des Kurses nicht, was ein Dateisystem ist

    • Ich stimme Blow nicht in allem zu, denke aber, dass wir eine NAND-to-Tetris-artige Ausbildung für Highschool-Schüler bis hin zu Technikstudierenden brauchen
    • Ich nutze „altmodische“ Modelle wie Little Man Computer und einen einfachen MIPS-Emulator, um Studierenden zu helfen, die Ursprünge der Technik zu verstehen
    • Bei modernen Büchern über 64-Bit-Architekturen muss ich lachen
    • Es ist ein schwieriges Problem, die Technik in ihren Grundlagen miteinander zu verbinden
  • Ich stimme Ihrer Meinung zu. Ich habe Blows Vortrag gesehen und halte die Kritik für wichtig

    • Als Blow sagte, man könne „keine Pixel auf den Bildschirm zeichnen“, fand ich, dass er recht hat
    • Ich bin Game-Engine-Programmierer in einem mittelgroßen Spieleunternehmen, und es wird immer schwieriger, Leute für Grafikcode einzustellen
    • DX12 verlangt Programmierern viel mehr ab als die vorherige Generation (DX11), und selbst Microsoft räumt ein, dass DX12 ohne frühere Erfahrung mit Grafik-APIs sehr schwer zu lernen ist
    • Diese APIs sind für Entwickler gedacht, die die Grenzen von Grafikkarten ausreizen und Low-Level-Optimierungen umsetzen wollen, aber inzwischen sind sie Industriestandard geworden und für Menschen ohne Erfahrung schwer zu vermitteln
    • Wenn sich nichts ändert, wird der Pool an Bewerbern weiter schrumpfen
  • Wenn ein älterer Webentwickler über Abstraktion klagt, zielt er auf React-Entwickler

    • Wenn ein Python-Entwickler über Abstraktion klagt, zielt er auf ältere Webentwickler
    • Wenn ein C++-Anwendungsentwickler über Abstraktion klagt, zielt er auf Python-Entwickler
    • Wenn ein Firmware-Entwickler über Abstraktion klagt, zielt er auf Anwendungsentwickler
    • Wenn ein Elektroingenieur über Abstraktion klagt, zielt er auf Firmware-Entwickler
    • Die Grenze für „übermäßige Abstraktion“ auf Basis des eigenen Wissens zu ziehen und danach alles als „Zerstörung der Zivilisation“ zu bezeichnen, ist eine eigentümliche Sichtweise
  • Dinge wie JavaScript auf dem Server und React haben das Web in das Chaos der Softwareentwicklung verwandelt

    • Viele Kinder wissen nicht, dass HTML im Browser gerendert wird, und glauben, React werde im Browser gerendert
    • Dass der CEO von Vercel React für den Linux-Kernel der Entwicklung hält, ist albern
  • Blow spricht oft hervorragende Punkte zur Entwicklung an, verfehlt aber häufig den Kern

    • Er hat Großartiges geleistet und hat Ideen, denen es sich zuzuhören lohnt, aber manchmal redet er Unsinn
    • Das Gerede über den Zusammenbruch der Zivilisation gehört meiner Meinung nach zu diesem Unsinn, und ich danke dem OP für die bereitgestellte Gegenrede
    • Über Casey Muratori werde ich gar nicht erst anfangen; er versucht wie Blow zu sein, bekommt aber nicht einmal die guten Teile richtig hin
  • In modernen Software-Umgebungen gibt es viele Probleme, und ich denke, übermäßige Abstraktion ist eines davon

    • Das andere Extrem ist jedoch ebenfalls schlecht, und die Leute romantisieren die Vergangenheit zu sehr
    • Nicht nur Abstürze und Neustarts waren ein Problem; selbst Systeme, die auf Kompatibilität ausgelegt waren, litten unter Inkonsistenzen
    • Selbst auf dem unzuverlässigsten modernen System (Windows 11) ist mein Computer zuverlässiger als jeder Computer, den ich vor 2010 hatte
    • Ich kann sogar Software ausführen, die für Windows 95 geschrieben wurde
  • Nicht jede Vereinfachung ist eine Abstraktion. Nicht jede Abstraktion ist eine Vereinfachung

    • Das Streben nach Vereinfachung motiviert gewöhnlich Abstraktion
    • Ich glaube nicht, dass Abstraktion Software oder Zivilisation tötet, aber schlechte Abstraktionen beeinträchtigen Flexibilität und Zugänglichkeit
    • Als Beispiel kann man Syntax Sugar in fast jeder Sprache nennen
    • Nicht bestimmte Elemente führen zu mehr Fehlern; schwierig ist vielmehr, Werkzeuge gut einzusetzen, um komplexe Probleme zu lösen
  • Es gibt viele schlechte Abstraktionen. Wegen der „Religion der Geschwindigkeit“ und Arroganz in der Technik bleibt es oft beim ersten Versuch

    • Wenn etwas Teil eines populären Projekts wird, ahmen andere es nach
    • Wenn sich das 10 bis 20 Jahre lang wiederholt, entsteht ein gewaltiges Chaos
    • Ich mag Jonathan Blows Vortrag und sehe ihn mir einmal im Jahr wieder an
    • Er sagt nichts Kontroverses, aber ich weiß, dass viele Entwickler nicht ihr Bestes geben
  • Der Autor gehört zu einer neuen Generation und versteht nicht, wovon Blow spricht

    • Wenn man sagt, Figma zerstöre die Designwelt, denken junge Designer, alles sei in Ordnung
    • Weil sie nicht in diesem Umfeld aufgewachsen sind, ist es weniger wahrscheinlich, dass sie das kulturelle und erfahrungsbezogene Äquivalent lernen
  • Ich widerspreche der Behauptung, dass „die Zivilisation zusammenbrechen wird, wenn wir die Low-Level-Dinge vergessen“

    • Es gibt zu viel Komplexität dabei, High-Level-Prozesse mithilfe von Low-Level-Systemen zu modellieren
    • Komplexität ist das Problem, und wir sollten sie minimieren und zufällige Komplexität vermeiden