JUCS - Journal of Universal Computer Science 19(3): 428-456, doi: 10.3217/jucs-019-03-0428
A Comparison of Five Programming Languages in a Graph Clustering Scenario
expand article infoMartin Stein, Andreas Geyer-Schulz
‡ Karlsruhe Institute of Technology, Karlsruhe, Germany
Open Access
Abstract
The recent rise of social networks fuels the demand for efficient social web services,whose performance strongly benefits from the availability of fast graph clustering algorithms. Choosing a programming language heavily affects multiple aspects in this domain, such as run-time performance, code size, maintainability and tool support. Thus, an impartial comparison can provide valuable insights that are also useful for software development in general. This article in-vestigates the languages C++, Java, C#, F# and Python (as well as its close variant Cython) in a controlled scenario: In each language, a graph clustering task is implemented and executed. Thepaper introduces the problem to be solved and gives an overview over the different characteristics of the languages. After a detailed description of the testing environment, we report runtime,memory and code size results and discuss them with respect to the characteristics mentioned before. The findings indicate C++ as the fastest language for the challenge at hand, but they alsoshow that Java, C# and F# come close under some circumstances. Furthermore, it becomes clear that the amount of code can be significantly reduced with modern languages like Python or F#.
Keywords
Benchmark, Programming Languages, Language Performance, Graph Clustering, Modularity