Four short links: 26 July 2020
AI Coding, DataScript, Structured Argument, and Debugging at Google Scale
- As We May Code — why aren’t we — ostensibly the people writing software — doing more with AI in our day-to-day? Why are things like TabNine and Kite so often seen as curiosities instead of game-changers? If you take seriously the idea that ai will fundamentally change the nature of many occupations in the coming decade, what reason do you have to believe that you’ll be immune from that because you work in software? Looking at the code you’ve been paid to write over the past few years, how much of that can you honestly say is truly novel? Regular readers know this is consonant with my beliefs, though I’m not as bullish on RDF and the SemWeb as Matt may be. One of his closing lines also resonated: The truth is, I’ve come around to thinking that programming isn’t the most important thing for programmers to pay attention to right now.
- DataScript as a Lingua Franca for Domain Modeling — represent our Domain Model declaratively, as an in-program data structure (a ‘meta-database’); derive the ‘machine’ behaviour generically from this representation. Implemented using DataScript, an in-memory database / data-structure, available as a library on the JVM or JavaScript, which takes inspiration from the Datomic database.
- Structured Evidential Argumentation System — We have developed a new methodology that retains the ease-of-use, familiarity, and (some of) the free-form nature of informal methods, while benefiting from the rigor, structure, and potential for automation characteristic of formal methods. Our approach aims to foster thoughtful and timely analysis through the introduction of structure, and collaboration through access to the corporate memory of current and past analytic results. Unchanged since 2007, according to this website. I wish it were open sourced to experiment with and build on.
- Debugging Incidents in Google’s Distributed Systems — This article covers the outcomes of research performed in 2019 on how engineers at Google debug production issues, including the types of tools, high-level strategies, and low-level tasks that engineers use in varying combinations to debug effectively. It examines the research approach used to capture data, summarizing the common engineering journeys for production investigations and sharing examples of how experts debug complex distributed systems. Finally, the article extends the Google specifics of this research to provide some practical strategies that you can apply in your organization.