Abstract:
Many people, regardless of whether they consider themselves programmers, are interested in the ability of large language models (LLMs) to assist with programming tasks. The rapid rise of LLMs is transforming the socio-technical constraints and incentives under which programming environments are designed and adapted. This change is affecting languages, APIs, tools, and documentation. For instance, the practice of example-centric programming is being enhanced by LLMs, resulting in a shift of the primary programming activity from creating to curating. It may seem like this is all very new, but we see a resurgence of age-old themes in the psychology of programming and developer tools design.
Re-examining these historical themes in light of the growing popularity of LLM-assisted programming leads to open questions about how future programming environments will be designed. In particular, we argue that the implications of LLMs will go far beyond adding features to code editors. Design choices in programming languages and frameworks, which have so far been largely unaffected by LLMs, will be made differently due to changing programmer behaviors and preferences enabled and amplified by LLMs.
Re-examining these historical themes in light of the growing popularity of LLM-assisted programming leads to open questions about how future programming environments will be designed. In particular, we argue that the implications of LLMs will go far beyond adding features to code editors. Design choices in programming languages and frameworks, which have so far been largely unaffected by LLMs, will be made differently due to changing programmer behaviors and preferences enabled and amplified by LLMs.