© 2020 Strange Loop
Conceptualization and understanding are prerequisites for changing software. But they are harder to achieve as software becomes more complex and expands in scope. We have many tools for writing software, but few at all for reading and understanding it. What if there were tools that helped us conceptualize systems so that we could change them with greater confidence? What would they look like and how would we use them.
I will describe a new tool that helps developers rapidly build understanding of new software systems by generating an Idealized Commit Log: a simplified step-by-step deconstruction of a working software system. I will explain how the tool works by touching upon a diverse set of topics including type analysis, code coverage tools, AST transformations and a much-ignored topic of academic computer science pioneered nearly forty years ago called program slicing.
Finally, I will apply the idealized commit log technique to explain the inner workings of a number of ostensibly complex real-world software packages to demonstrate its power and simplicity.
Hacker and entrepreneur, creator of ngrok.com.