Hacker News new | ask | show | jobs
by rimantas 3564 days ago

    >> Programs difficult to reason about are hard to get
    >> working and hard to debug and hard to maintain.
Actually reasoning and maintaining often are at the opossing ends. The code which is easy to reason about tends to be low on abstractions and tightly coupled, so changes become much more difficult. More modular code is harder to reason about but the changes can be introduced easily.
1 comments

I believe that I agree with you. Good modularity and good abstractions allow easier reasoning about the program. I like the word reasoning because it covers thinking in a Dijkstra like way about tight pieces of code and Liskov like ways about larger systems.