<  Back to the Polytechnique Montréal portal

Towards Understanding Modern Multi-Language Software Systems

Manel Grichi

PhD thesis (2020)

[img]
Preview
Terms of Use: All rights reserved.
Download (3MB)
Cite this document: Grichi, M. (2020). Towards Understanding Modern Multi-Language Software Systems (PhD thesis, Polytechnique Montréal). Retrieved from https://publications.polymtl.ca/5398/
Show abstract Hide abstract

Abstract

RÉSUMÉ : Aujourd’hui, la plupart des applications et sites Web tels que Google et Facebook sont des systèmes multi-langages. Google est codé en C, C++, Go, Java, Python et JS. Facebook, quant à lui, utilise Hack, PHP, Python, C++, Java, Erlang, D, Haskell et JS. De plus, de précédentes études ont permis de constater que les développeurs PHP utilisaient régulièrement deux langages en plus du PHP. Les développeurs Java utilisent également le C/C++ avec du code Java à travers la Java Native Interface (JNI) qui permet d’appeler des fonctions natives à partir de méthodes Java et des méthodes Java à partir des fonctions natives. De plus, les développeurs d’applications Android préfèrent utiliser Android NDK (qui permet d’utiliser du code C/C++ avec Android) en plus de Java, plutôt que d’utiliser uniquement Java. Dans tous ces exemples, on observe le phénomène du développement multi-langage. Bien qu’il y ait, le plus souvent, un seul langage principal (Java ou C/C++) avec divers contributions dans d’autres langages (par exemple, bash ou make), les logiciels modernes sont de plus en plus hétérogènes dans le sens où ils combinent de multiples langages de programmation qui interagissent d’une façon significative avec le langage principal.----------ABSTRACT : Today, most popular applications and websites such as Google and Facebook are multilanguage systems. Google is developed with C, C++, Go, Java, Python, and JS, while Facebook is using Hack, PHP, Python, C++, Java, Erlang, D, Haskell, and JS. Furthermore, previous research studies reported that PHP developers regularly use two languages besides PHP. Java developers also use C/C++ with Java code through the Java native interface (JNI) that allows to call native functions from Java methods and Java methods from native functions. Moreover, Android application developers prefer to use the Android NDK (allows to use C/C++ code with Android) along with Java compared to using only Java. In all these examples, we observe the phenomenon of multi-language development. While in many cases, there is one clear main language (e.g., Java or C/C++) with various smaller contributions from other languages (e.g., bash or make), increasingly more modern software are heterogeneous in the sense that they are composed of multiple programming languages that interact with the host language to a large extent.

Open Access document in PolyPublie
Department: Département de génie informatique et génie logiciel
Academic/Research Directors: Bram Adams
Date Deposited: 10 Nov 2020 12:30
Last Modified: 10 Nov 2021 01:15
PolyPublie URL: https://publications.polymtl.ca/5398/

Statistics

Total downloads

Downloads per month in the last year

Origin of downloads

Repository Staff Only