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 upfrontM
: 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