stevekrouse
cogell
09/16/2019, 3:18 PMDon Abrams
09/16/2019, 3:18 PMProgrammers develop a set of heuristics about what code patterns have or have not worked before. They internalize information about these patterns into abstractions, which they then use to reason about programs. These abstractions can differ from programmer to programmer and are often not explicitly known, named, or discussed. When writing code, a programmer isn’t often thinking in terms of code, but usually in terms of these abstractions. This isn’t always reliable: combining two abstractions often results in a bigger abstraction with different properties than either of the two abstractions. So in turn, programmers must develop more heuristics about the properties of composed abstractions. Any failure to identify a novel composition, create sound abstractions, or correctly use an abstraction can result in bugs or poor performance. In addition to this complexity of writing code, reading and changing code is usually harder: code doesn’t show what abstractions the writer was working with when they wrote it or what the impact of a “small” change might be.
cogell
09/16/2019, 3:20 PMDon Abrams
09/16/2019, 3:25 PMDon Abrams
09/16/2019, 3:29 PMwtaysom
09/16/2019, 4:00 PMEdward de Jong / Beads Project
09/16/2019, 9:44 PMEddy Parkinson
11/11/2019, 3:07 AMEdward de Jong / Beads Project
11/11/2019, 7:40 AM