Weil man grundsätzlich zu GUI-Orientiert denkt. Stell dir vor, du hast keine GUI, sondern eine DOS-Box. Wenn das Programm gut ist muss man kaum was ändern, schon garnicht an den Kernkomponenten.
Ich hab schon Programme gesehn, da bricht alles in sich zusammen, wenn man ein Dropdown in ein Inputfeld tauscht.
Im Programm läuft alles über Objekte. Wenn du in ein Objekt irgendwas hinzufügst weiss das, dass es in einer HList was updaten muss. Wenn sich eine Statusvariable im Objekt ändert weiss es, dass es Buttons bescheid sagen muss...
Und wenn du die HList irgendwann wegschmeisst und die Änderung in einem Log haben willst änderst du im Objekt bei "sub onChangeIrgendwas" den update der HList nach print. Und fertig.
1 + 1 = 10