Software Development Environments on the Web - A Research Agenda

August 08, 2012

At Onward 2012 we will present our research agenda for bringing software development to the web:

Lennart C. L. Kats, Richard Vogelij, Karl Trygve Kalleberg, Eelco Visser. Software Development Environments on the Web: A Research Agenda. In Proceedings of the 11th SIGPLAN symposium on New ideas, new paradigms, and reflections on programming and software (Onward! 2012), ACM Press, 2012. (researchr, pdf)

WebLab3-1

Abstract. Software is rapidly moving from the desktop to the Web. The Web provides a generic user interface that allows ubiquitous access, instant collaboration, integration with other online services, and avoids installation and configuration on desk- top computers. For software development, the Web presents a shift away from developer workstations as a silo, and has the promise of closer collaboration and improved feedback through innovations in Web-based interactive development environments (IDEs). Moving IDEs to the Web is not just a matter of “porting” desktop IDEs; a fundamental reconsideration of the IDE architecture is necessary in order to realize the full potential that the combination of modern IDEs and the Web can offer. This paper discusses research challenges and opportunities in this area, guided by a pilot study of a web IDE implementation.

Introduction

Software is moving from the desktop to the Web. Online services are rapidly replacing traditional shrink-wrapped and downloadable software products. They run in the Cloud, and use the web browser as a generic user interface that allows ubiquitous access, instant collaboration, integration with other online services, and avoids installation and con- figuration on desktop computers.

Web-Based Software Development

It is only natural that software development tools follow this trend, providing a Web-based interface for software development, supported by cloud-based storage and services. Many software engineering tools, including issue tracking, version management, and build farms for continuous integration, are already provided as Web-based services. Based on the latest developments in Ajax technologies, vastly improved JavaScript engines, and the introduction of HTML5, there is now even a small but growing collection of browser-based code editors.

Fully fledged integrated development environments (IDEs) are still lagging behind in this pull towards the Web. Modern, desktop-based IDEs integrate a wide range of software engineering tools, and provide a platform for writing, maintaining, testing, building, running, debugging, and deploying software. They increase developer productivity by incorporating many different kinds of editor services specific to the syntax and semantics of a language. These services assist developers in understanding and navigating through the code, they direct developers to inconsistent or incomplete areas of code, and they even help with editing code by providing automatic indentation, bracket insertion, and content completion. The integration of complete tool suites for software development and the development of language-specific editor services took a tremendous effort for the current generation of IDEs such as Eclipse and Visual Studio. Moving the next generation of IDEs to the Web is not just a matter of “porting” desktop IDEs; a fundamental reconsideration of the IDE architecture is necessary in order to realize the full potential that the combination of modern IDEs and the Web can offer.

The Web as a Software Development Platform

As a platform for software development, the Web offers a compelling combination of challenges and opportunities.

On the one hand, it has an inhomogeneous, distributed nature: computational nodes (servers vs web browsers) have extremely varied computational capabilities; on the browser-side, only JavaScript is natively supported; re- sources are spread across unreliable networks, with computing resources that may disappear and reappear randomly and communication that is many orders of magnitude slower than inter-process communication.

On the other hand, the Web also provides a new frontier for software development. The connectedness of clients on the Web enables closer collaboration between developers on a project through joint workspaces enabling real-time collaborative editing and coordination of tasks. The centralized configuration and deployment of the cloud ensures that all developers on a project use the same development environment, since there is no need to locally install new versions of the IDE, compiler, or testing tools. The integration with other services enables user-extensible platforms based on embedded DSLs. The infinitely scalable resources of the cloud enable speculative verification, compilation, and testing. Highly parallel analysis enables instantaneous feedback to developers, even for sophisticated whole-program analyses.

A Research Agenda

While software development environ- ments on the Web may be an appealing vision, it is far from reality. In this paper, we outline a research agenda for the intersection of research in Integrated Development Environments and Web-based, Cloud-delivered software engineering. We examine use cases, opportunities, technical, architectural, and social challenges of the Web as software development environment.

Outline

In Section 2 we discuss the status quo of developing software with classical desktop IDEs such as Eclipse and Visual Studio, elaborating on their features as well as the problems. In Section 3 we explore use cases of the Web as development environment and the research questions these generate. In particular, we discuss WebLab, a proof-of-concept e-learning web application for programming education. In Section 4 we consider the architecture of desktop IDEs and the implementation of IDE plugins from language definitions as background for the realization of Web-based IDES.

In Section 5 and Section 6 we discuss a pilot study of a Web-based IDE implementation, which we conducted in order to illustrate and formulate the research goals in this area. Our aim in this pilot study has been to reuse as much existing desktop and Web technology as possible, and to analyze and measure the feasibility and performance of the approach. We present our proof of concept implementation of a fully functional Web based, syntactically and semantically aware, source code editor for the mobl language and present statistics from the performance benchmarks we have performed. Based on the initial experience with the proof of concept we speculate on the future possibilities and issues Web-based IDE implementations could provide and present.

In Section 7 we consider the social and political implications of confining software development environments to walled gardens on the Web.