Supervising the Future: How AI Will Change the Way We Write Code

The future of software development might resemble the evolution of self-driving cars. Just like self-driving systems went from basic lane assistance to fully autonomous navigation, software engineering tools are progressing towards a future with increased automation.

Imagine this progression:

Traditionally (Manual Coding): Programmers write every line of code themselves.

Stage 1 (Basic Assistance): Tools like GitHub Copilot help by auto-completing simple lines or code snippets.

Stage 2 (Advanced Assistance): AI models like ChatGPT can generate larger chunks of code based on your instructions.

Stage 3 (Large-Scale Automation): Cursor Copilot++ style tools take things further, allowing for significant code generation based on user input. (See this demo: [link to youtube video])

Stage 4 (AI Orchestration): Devin, the AI software engineer from Cognition Labs, represents a potential future where AI coordinates various development tools (terminals, browsers, code editors) to write code. Human oversight still exists, but focuses on higher-level strategy and direction.

This shift demands advancements not just in AI, but also in user interface (UI) and user experience (UX) design. Key questions remain:

  • How will developers oversee the AI’s work?
    • Solution: Visualizations and Code Reviews:
      The UI could display the AI’s thought process visually, highlighting areas of high and low confidence in the generated code. This allows developers to focus their reviews on critical sections.
  • What information will they need to monitor progress?
    • Solution: Interactive Feedback Loops: The developer and AI should have an interactive feedback loop. Developers can provide real-time feedback on the direction of code generation, allowing the AI to adjust its approach.
  • How can they guide the AI in different directions?
    • Solution: High-Level Intent Specification: Developers could specify their desired functionalities or outcomes at a higher level, allowing the AI to generate code that aligns with those goals.
  • How will debugging errors work in this new paradigm?
    • Solution: Explainable AI and Debugging Tools: The AI should be able to explain its reasoning behind code generation, aiding developers in pinpointing the source of errors. Additionally, advanced debugging tools specifically designed for AI-generated code could streamline the process.

These challenges might necessitate a complete overhaul of traditional code editors. Ultimately, software engineering is headed for a significant transformation. The future might involve less manual coding and more supervision of intelligent automation, with developers focusing on high-level strategies and guiding the AI with clear directions.

Here’s to the exciting possibilities and the teams creating these groundbreaking tools!