7-A New Generation of Intelligent Development Environments
7-A New Generation of Intelligent Development Environments
ABSTRACT 1 INTRODUCTION
The practice of programming is undergoing a revolution with the The last 5 years have seen a revolution in the practice of program-
introduction of AI assisted development (copilots) and the creation ming. The introduction of AI assisted programming (copilots) [4]
of new programming languages that are designed explicitly for has changed the way that developers work by providing a new way
tooling, analysis, and automation. Integrated Development Envi- to generate code. The rise of easy to use package ecosystems [10]
ronments (IDEs) as they are currently conceptualized have not yet has made it easier than ever to reuse existing code and to integrate
responded to these changes. They are still designed around the idea it into new applications. The introduction of new programming
of a human programmer typing textual code into an editor window languages designed explicitly for tooling, analysis, and automa-
with the IDE providing assistance via the integration of various tion [8] has made the concept of transparent program validation
tools for syntax highlighting, compilation, debugging, and (maybe) and analysis a real possibility. The rise of distributed cloud pro-
code version control. This paper presents a vision for transforming gramming, with serverless and REST based microservices, has has
the IDE from an Integrated Development Environment to an Intel- made it easier than ever to deploy and scale applications but created
ligent Development Environment. The new IDE will be designed a whole new ecosystem of monitoring and observability tools.
around the idea of a human programmer as the manager or curator These changes have fundamentally altered the way that devel-
of a software project who, rather than manually typing in code opers work. However, the Integrated Development Environments
to implement a solution, will instead use the IDE to direct AI pro- (IDEs) that developers use have not kept pace with these changes.
gramming agents and/or automated tools to combine existing APIs, They are still designed around the idea of a human programmer
packages, and new code to implement the needed features. In this typing textual code into an editor window with the IDE provid-
new model, the fundamental roles of the IDE are to 1) facilitate the ing some assistance via the integration of various tools for syntax
communication between the human programmer and the AI agents highlighting, compilation, debugging, and (maybe) code version
and automated tools and 2) organize the workflow tasks needed to control. This paper presents experience from working on these
go from requirements gathering to the final tested and validated de- technologies and a vision for transforming the IDE from an Inte-
ployed feature. This paper presents a vision for the new Intelligent grated Development Environment to an Intelligent Development
Development Environment based on a range of proof-of-concept Environment.
high-value scenarios we have experimented with and discusses the This new IDE will be designed around the idea of a human pro-
challenges that remain to realizing these in a cohesive intelligent grammer as the manager or curator of a software project who will
development experience. use the development environment to gather requirements directly
in a live and semantically rich way then to direct AI programming
agents and/or automated tools to combine existing APIs, packages,
and new code to implement the needed features. This environment
also supports new workflows for validating and resolving potential
CCS CONCEPTS issues in the code, before it is even integrated, ensuring that the
• Software and its engineering → General programming lan- final implementation satisfies key correctness, security, and perfor-
guages. mance requirements. Finally, in this new model, the development
environment can fully close the lifecycle loop by working as an
information broker between the developer and the deployed appli-
KEYWORDS
cation. This allows the developer to quickly understand the current
Interactivity, Development Environment, AI Assisted Programming health of the application from a holistic perspective, to act on issues
without requiring context switching between tools, and re-enter
ACM Reference Format: the requirements gather process seamlessly as new needs arise.
Mark Marron. 2024. A New Generation of Intelligent Development Environ-
ments. In 2024 First IDE Workshop (IDE ’24), April 20, 2024, Lisbon, Portugal.
ACM, New York, NY, USA, 4 pages. https://doi.org/10.1145/3643796.3648452
This work licensed under Creative Commons Attribution International 4.0 License.
43
IDE ’24, April 20, 2024, Lisbon, Portugal Mark Marron
This paper presents a vision for the new Intelligent Development the developer and customer can interactively walk through them
Environment based on a range of proof-of-concept high-value sce- with different data scenarios and experiment with changes to the
narios we have experimented with and outlines the work needed UI and/or planned computation components!
to realize these features/scenarios in a cohesive development expe-
rience.
3 AI ASSISTED PROGRAMMING
Once the requirements have been gathered and the data has been
2 REQUIREMENTS GATHERING described the next step is to use AI agents to generate the code
A key task for developers in the new world of AI assisted program- needed to realize the requirements. This is done by using the data
ming is to gather requirements and translate them into actionable description to generate a set of data-specifications that describe the
tasks for the AI agents and automated tools. Our experiments with APIs and data that each step operates on – in our scenarios using
this task have identified a workflow based around Prorogued Pro- TypeSpec [12] or Bosque [3]. These specifications are then consum-
gramming [1], live UI mockups (using React [11]), and rich data able by various AI agents, as a Mixture of Experts (MoE) that can
description languages [3, 12]. generate code to implement the needed functionality. A first agent
In this workflow the developer interactively walks through sce- works to convert the flow diagram and data specifications into a set
narios with the customer to identify the overall workflows that of high-level APIs that can be used to implement the functionality.
should be supported using live UI mockups, written declaratively Individual coding agents can then be used to implement each of
in React, and fills in the details of the data that is read/written the APIs, with the MoE agent providing guidance and feedback to
in each step with mock values written in a rich data description the developer as they work.
language (TypeSpec [12]) as they are needed at each step. A key aspect of this workflow is that the developer is not writing
Figure 1 shows an example of this workflow. In this scenario a code, but instead is managing the AI agents and providing feedback
developer is working to implement a new Todo application. The to refine and correct as the code is generated. This is a key shift in
first action the customer wants on startup is to show the current the role of the developer from a programmer to a manager/curator
todo tasks in the database. The developer can add the edge to a and this shift in roles must be supported in the development envi-
flow diagram, and add some free form text about the requirement ronment as well!
+ where to find the database and what login credentials should be A first step in this direction is to support the automatic conver-
used. The developer can then ask the customer what the data should sion of the sample data gathered as part of the requirements into
look like and fill in the mock information, ideally with extensive unit tests that can reject obviously incorrect code. Another step is
autocompletion support if the format is available using techniques to use the API and data specifications to generate a set of sanity
like [3, 12]. From this data a quick React UI component can be fuzz inputs to catch and correct any hard failures as the AI agents
written and the customer can interactively walk through the flow are working. However, the most important step is to provide direct
to see if it matches their expectations. Further, as these flows are support for the developer when they need to step in and provide
now captured in live-executable flow diagrams and UI components feedback in situations where there is ambiguity in the requirements
44
A New Generation of Intelligent Development Environments IDE ’24, April 20, 2024, Lisbon, Portugal
45
IDE ’24, April 20, 2024, Lisbon, Portugal Mark Marron
46