Gradual Typing Across the Spectrum
Fri 02.19.16
Gradual Typing Across the Spectrum
Fri 02.19.16
Fri 02.19.16
Fri 02.19.16
Fri 02.19.16
Fri 02.19.16
The Gradual Typing Across the Spectrum project addresses an urgent, emergent need at the intersection of software maintenance and programming language research. Over the past 20 years, working software engineers have embraced so-called scripting languages for a variety of tasks. They routinely use JavaScript for interactive web pages, Ruby on Rails for server-side software, Python for data science, and so on. Software engineers choose these languages because they make prototyping easy, and before the engineers realize it, these prototypes evolve into large, working systems and escape into the real world. Like all software, these systems need to be maintained—mistakes must be fixed, their performance requires improvement, security gaps call for fixes, their functionality needs to be enhanced—but scripting languages render maintenance difficult. The intellectual merits of this project are to address all aspects of this real-world software engineering problem. In turn, the project’s broader significance and importance are the deployment of new technologies to assist the programmer who maintains code in scripting languages, the creation of novel technologies that preserve the advantages of these scripting frameworks, and the development of curricular materials that prepares the next generation of students for working within these frameworks.
A few years ago, the PIs launched programming language research efforts to address this problem. They diagnosed the lack of sound types in scripting languages as one of the major factors. With types in conventional programming languages, programmers concisely communicate design information to future maintenance workers; soundness ensures the types are consistent with the rest of the program. In response, the PIs explored the idea of gradual typing, that is, the creation of a typed sister language (one per scripting language) so that (maintenance) programmers can incrementally equip systems with type annotations. Unfortunately, these efforts have diverged over the years and would benefit from systematic cross-pollination.
The PIs will systematically explore the spectrum of their gradual typing system with a three-pronged effort. First, they will investigate how to replicate results from one project in another. Second, they will jointly develop an evaluation framework for gradual typing projects with the goal of diagnosing gaps in the efforts and needs for additional research. Third, they will explore the creation of new scripting languages that benefit from the insights of gradual typing research.
The Gradual Typing Across the Spectrum project addresses an urgent, emergent need at the intersection of software maintenance and programming language research. Over the past 20 years, working software engineers have embraced so-called scripting languages for a variety of tasks. They routinely use JavaScript for interactive web pages, Ruby on Rails for server-side software, Python for data science, and so on. Software engineers choose these languages because they make prototyping easy, and before the engineers realize it, these prototypes evolve into large, working systems and escape into the real world. Like all software, these systems need to be maintained—mistakes must be fixed, their performance requires improvement, security gaps call for fixes, their functionality needs to be enhanced—but scripting languages render maintenance difficult. The intellectual merits of this project are to address all aspects of this real-world software engineering problem. In turn, the project’s broader significance and importance are the deployment of new technologies to assist the programmer who maintains code in scripting languages, the creation of novel technologies that preserve the advantages of these scripting frameworks, and the development of curricular materials that prepares the next generation of students for working within these frameworks.
A few years ago, the PIs launched programming language research efforts to address this problem. They diagnosed the lack of sound types in scripting languages as one of the major factors. With types in conventional programming languages, programmers concisely communicate design information to future maintenance workers; soundness ensures the types are consistent with the rest of the program. In response, the PIs explored the idea of gradual typing, that is, the creation of a typed sister language (one per scripting language) so that (maintenance) programmers can incrementally equip systems with type annotations. Unfortunately, these efforts have diverged over the years and would benefit from systematic cross-pollination.
The PIs will systematically explore the spectrum of their gradual typing system with a three-pronged effort. First, they will investigate how to replicate results from one project in another. Second, they will jointly develop an evaluation framework for gradual typing projects with the goal of diagnosing gaps in the efforts and needs for additional research. Third, they will explore the creation of new scripting languages that benefit from the insights of gradual typing research.