Hadley Wickham writes that modern coding agents, which have transformed software development, fundamentally rely on just six core functions that enable a language model to navigate and modify a codebase like a human developer. By deconstructing these tools into read, write, edit, list, search, and execute commands, the author demonstrates how to construct a minimal, fully functional coding agent in R. He emphasizes that while a general shell command can substitute for many tools, implementing dedicated functions with strict path validation significantly improves both security and efficiency, preventing accidental exposure of sensitive files or unintended system modifications.
- The minimal viable agent requires only three functions: read file, write file, and run command.
- Direct shell execution acts as a catch-all but introduces significant security risks and cross-platform inconsistencies.
- Dedicated search and list functions allow for precise path validation, blocking access to hidden dotfiles and directories outside the project root.
- An edit function that swaps exact text chunks is far faster and cheaper than rewriting entire files, while also failing loudly on mismatches instead of corrupting code.
This article presents findings from a survey of over 900 software engineers regarding their use of AI tools. Key findings include the dominance of Claude Code, the mainstream adoption of AI in software engineering (95% weekly usage), the increasing use of AI agents (especially among staff+ engineers), and the influence of company size on tool choice. The survey also reveals which tools engineers love, with Claude Code being particularly favored, and provides demographic information about the respondents. A longer, 35-page report with additional details is available for full subscribers.