Skip to main content

Use compiled languages

Description​

Interpreted languages need to be parsed, compiled and executed when the application starts or a workload arrives. This tends to be more energy heavy then when a compiled language is used. The compilation is then only done once, saving on resources.

Solution​

Use compiled languages (like Go, Rust, Java or others) whenever possible or compile interpreted languages.

SCI Impact​

SCI = (E * I) + M per R
Software Carbon Intensity Spec

Concerning the SCI equation, use compiled languages will impact as follows:

  • E: Running compiled binaries is more energy efficient and uses less energy which outweighs the energy consumed in compiling it to binary upfront
  • M: The embodied carbon emissions will be reduced, as compiled binaries tend to be smaller then the sources they are compiled from

Assumptions​

  • There is the assumption that the execution environment allows usage of compiled languages, this is not always the case (for example web browsers)
  • Use benchmarks to determine if the application use case benefits from using a compiled language.

Considerations​

  • Some interpreted languages provide ways to be compiled into binary (for example GraalVM for Java, Python and more)
  • Consider factoring in compile time when doing benchmarks

References​