2018•The Art Science and Engineering of ProgrammingOpen access

Live Multi-language Development and Runtime Environments

Fabio Niephaus, Tim Felgentreff, Tobias Pape, Robert Hirschfeld, Marcel Taeumel

Open full text 8 citations

Abstract

Context: Software development tools should work and behave consistently across different programming languages, so that developers do not have to familiarize themselves with new tooling for new languages.Also, being able to combine multiple programming languages in a program increases reusability, as developers do not have to recreate software frameworks and libraries in the language they develop in and can reuse existing software instead.Inquiry: However, developers often have a broad choice of tools, some of which are designed for only one specific programming language.Various Integrated Development Environments have support for multiple languages, but are usually unable to provide a consistent programming experience due to different languagespecific runtime features.With regard to language integrations, common mechanisms usually use abstraction layers, such as the operating system or a network connection, which are often boundaries for tools and hence negatively affect the programming experience.Approach: In this paper, we present a novel approach for tool reuse that aims to improve the experience with regard to working with multiple high-level dynamic, object-oriented programming languages.As part of this, we build a multi-language virtual execution environment and reuse Smalltalk's live programming tools for other languages.Knowledge: An important part of our approach is to retrofit and align runtime capabilities for different languages as it is a requirement for providing consistent tools.Furthermore, it provides convenient means to reuse and even mix software libraries and frameworks written in different languages without breaking tool support.Grounding: The prototype system Squimera is an implementation of our approach and demonstrates that it is possible to reuse both development tools from a live programming system to improve the development experience as well as software artifacts from different languages to increase productivity.Importance: In the domain of polyglot programming systems, most research has focused on the integration of different languages and corresponding performance optimizations.Our work, on the other hand, focuses on tooling and the overall programming experience.

Open-access reader

About this research paper

What this paper is about

Context: Software development tools should work and behave consistently across different programming languages, so that developers do not have to familiarize themselves with new tooling for new languages.Also, being able to combine multiple programming languages in a program increases reusability, as developers do not have to recreate software frameworks and libraries in the language they develop in and can reuse existing software instead.Inquiry: However, developers often have a broad choice of tools, some of which are designed for only one specific programming language.Various Integrated Development Environments have support for multiple languages, but are usually unable to provide a consistent programming experience due to different languagespecific runtime features.With regard to language integrations, common mechanisms usually use abstraction layers, such as the operating system or a network connection, which are often boundaries for tools and hence negatively affect the programming experience.Approach: In this paper, we present a novel approach for tool reuse that aims to improve the experience with regard to working with multiple high-level dynamic, object-oriented programming languages.As part of this, we build a multi-language virtual execution environment and reuse Smalltalk's live programming tools for other languages.Knowledge: An important part of our approach is to retrofit and align runtime capabilities for different languages as it is a requirement for providing consistent tools.Furthermore, it provides convenient means to reuse and even mix software libraries and frameworks written in different languages without breaking tool support.Grounding: The prototype system Squimera is an implementation of our approach and demonstrates that it is possible to reuse both development tools from a live programming system to improve the development experience as well as software artifacts from different languages to increase productivity.Importance: In the domain of polyglot programming systems, most research has focused on the integration of different languages and corresponding performance optimizations.Our work, on the other hand, focuses on tooling and the overall programming experience.

Why it matters

OpenAlex reports 8 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

Context: Software development tools should work and behave consistently across different programming languages, so that developers do not have to familiarize themselves with new tooling for new languages.Also, being able to combine multiple programming languages in a program increases reusability, as developers do not have to recreate software frameworks and libraries in the language they develop in and can reuse existing software instead.Inquiry: However, developers often have a broad choice of tools, some of which are designed for only one specific programming language.Various Integrated Development Environments have support for multiple languages, but are usually unable to provide a consistent programming experience due to different languagespecific runtime features.With regard to language integrations, common mechanisms usually use abstraction layers, such as the operating system or a network connection, which are often boundaries for tools and hence negatively affect the programming experience.Approach: In this paper, we present a novel approach for tool reuse that aims to improve the experience with regard to working with multiple high-level dynamic, object-oriented programming languages.As part of this, we build a multi-language virtual execution environment and reuse Smalltalk's live programming tools for other languages.Knowledge: An important part of our approach is to retrofit and align runtime capabilities for different languages as it is a requirement for providing consistent tools.Furthermore, it provides convenient means to reuse and even mix software libraries and frameworks written in different languages without breaking tool support.Grounding: The prototype system Squimera is an implementation of our approach and demonstrates that it is possible to reuse both development tools from a live programming system to improve the development experience as well as software artifacts from different languages to increase productivity.Importance: In the domain of polyglot programming systems, most research has focused on the integration of different languages and corresponding performance optimizations.Our work, on the other hand, focuses on tooling and the overall programming experience.

Key concepts: Computer science, Smalltalk, Programming language, Reuse, Third-generation programming language, Fourth-generation programming language, Software engineering, Software development

Related papers

Back to paper searchBrowse research topicsOriginal source
Live Multi-language Development and Runtime Environments — Research Paper | ScholarLens