The Programmer’s Apprentice Season 2: Advancements and Future Directions in AI-assisted Coding
In 1976, Charles Rich and his colleagues pioneered the concept of a programmer’s apprentice – an interactive programming system designed to assist expert programmers in the design, coding and maintenance of large and complex programs. The idea of a digital prosthesis, extending our biological brain to seamlessly bridge the gap between our ideas and the code we produce, has been revisited multiple times throughout the years. For instance, the Probability/Bigcode team has spent over half a decade applying machine learning to enhance efficiency for engineers, data scientists and systems across the board.
Historically, these endeavors relied on traditional (symbolic) AI techniques or early-stage neural net models, resulting in limited success in meeting the high expectations. However, the emergence of generative models like GPT has transformed what was once considered science fiction into reality, rendering the need for custom model architectures and embeddings obsolete. Consequently, many developers are now incorporating AI-based ‘co-pilots’ into their daily programming routines.
In this talk, we’ll explore the various ways AI has been applied at Meta, such as code search, code recommendations and bug fixing, and revisit these areas in the context of large language models (LLMs). Additionally, we’ll discuss our vision for the future of generative AI in productivity tools, pivoting from a collection of task-specific tools designed for a generic user base to a single, user-specific tool capable of tackling a multitude of tasks. This transition will illuminate the ongoing evolution of AI-assisted programming and its potential impact on the developer community and beyond.