A Comparison of Five Programming Languages in a Graph Clustering Scenario
Martin Stein (Karlsruhe Institute of Technology, Germany)
Andreas Geyer-Schulz (Karlsruhe Institute of Technology, Germany)
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, Graph Clustering, Language Performance, Modularity, Programming Languages
Categories: C.4, D.3, G.2.2