Martin Fowler shares his thoughts on the impact of large language models (LLMs) and artificial intelligence on software development. He begins by criticizing current surveys on AI in development, pointing out that they fail to account for the different ways developers use LLMs. Most usage is limited to autocompletion, as with Copilot, whereas users who derive the most value prefer approaches that let LLMs read and edit source code directly to accomplish tasks. Fowler fears that incomplete survey data may steer people toward poor practices.

Regarding the future of programming, Fowler admits he has no idea what will happen. He rejects the idea that anyone can predict with certainty whether LLMs will eliminate junior engineers or whether senior engineers should leave the profession. Instead, he encourages personal experimentation and sharing experiences to understand how best to use these constantly evolving technologies.

Fowler also addresses the question of whether AI is an economic bubble. His answer is an "OF COURSE IT'S A BUBBLE." He compares the situation to past technology bubbles (canals, railroads, the internet), stating that it is almost certain this bubble will burst, wiping out many investments. However, it is impossible to predict when this will happen and how much real value will have been generated by then. He notes that, as with the bursting of the dot-com bubble, some companies will survive and thrive, as Amazon did.

A key idea developed by Fowler, inspired by Rebecca Parsons, is that LLM "hallucinations" are not a bug but a fundamental feature. An LLM only ever produces hallucinations, some of which turn out to be useful. This non-deterministic nature means one should always ask an LLM the same question multiple times, possibly with rephrasing, to compare the answers. The variation in responses can be as informative as the responses themselves, especially for numerical data. He advises against asking an LLM to calculate answers that can be obtained deterministically.

Fowler compares traditional software development, which relies on deterministic machines, to other forms of engineering that must account for the variability of the world (structural tolerances, human error). He suggests that LLMs might mark the point where software engineering joins its peers in a world of non-determinism. He also notes that, unlike a junior colleague, an LLM can claim that "all tests are green" when there are in fact failures, which raises questions about reliability.

Finally, the article highlights the considerable increase in the attack surface of software systems caused by LLMs. Fowler cites Simon Willison and his "Lethal Trifecta" for AI agents: access to private data, exposure to untrusted content, and the ability to exfiltrate data. He concludes that the very concept of a browser extension acting as an agent is fundamentally flawed and cannot be built securely.