Comparing Languages for Engineering Server Software: Erlang, Go, and Scala with Akka

Authors: Chechina, N., Trinder, P. and Valkov, I.

Conference: Symposium on Applied Computing

Dates: 9-13 April 2018

Publisher: ACM

DOI: 10.1145/10.1145/3167132.3167144

Abstract:

Servers are a key element of current IT infrastructures, and must often deal with large numbers of concurrent requests. The programming language used to construct the server has an important role in engineering efficient server software, and must support massive concurrency on multicore machines with low communication and synchronisation overheads.

This paper investigates 12 highly concurrent programming languages suitable for engineering servers, and analyses three representative languages in detail: Erlang, Go, and Scala with Akka.

We have designed three server benchmarks that analyse key performance characteristics of the languages. The benchmark results suggest that where minimising message latency is crucial, Go and Erlang are best; that Scala with Akka is capable of supporting the largest number of dormant processes; that for servers that frequently spawn processes Erlang and Go minimise creation time; and that for constantly communicating processes Go provides the best throughput.

https://eprints.bournemouth.ac.uk/30239/

Source: Manual

Comparing Languages for Engineering Server Software: Erlang, Go, and Scala with Akka

Authors: Valkov, I., Chechina, N. and Trinder, P.

Conference: SAC 2018: The 33rd ACM/SIGAPP Symposium On Applied Computing

Publisher: ACM

Abstract:

Servers are a key element of current IT infrastructures, and must often deal with large numbers of concurrent requests. The programming language used to construct the server has an important role in engineering efficient server software, and must support massive concurrency on multicore machines with low communication and synchronisation overheads. This paper investigates 12 highly concurrent programming languages suitable for engineering servers, and analyses three representative languages in detail: Erlang, Go, and Scala with Akka. We have designed three server benchmarks that analyse key performance characteristics of the languages. The benchmark results suggest that where minimising message latency is crucial, Go and Erlang are best; that Scala with Akka is capable of supporting the largest number of dormant processes; that for servers that frequently spawn processes Erlang and Go minimise creation time; and that for constantly communicating processes Go provides the best throughput.

https://eprints.bournemouth.ac.uk/30239/

https://www.sigapp.org/sac/sac2018/

Source: BURO EPrints