In #Golang, values are actually copied when assigned (boxed) into an interface. That can have performance impact. https://goperf.dev/01-common-patterns/interface-boxing/
Avoiding Interface Boxing - Go Optimization Guide

Patterns and Techniques for Writing High-Performance Applications with Go

@snonux Most important is not the performance of a language. It is the performance of creating and maintain a software.
@themue Sure, but still, performance, depending on the use case, can be important as well!
@snonux Sure. So here Rust, C++, C, Assembler are good solutions. #golang always had the goal to have a simple way allowing to write highly concurrent software like Kubernetes and many more.
@themue Absolutely! It always depends, for pure raw performance, Rust, C++, C, Assembler, Zig, Odin.... But for the best trade-off between productivity and performance, I personally think Go hits the sweet spot. It's complex, really depends on the exact use case, the environment (is the language already well established with good support in a company..., etc). Maybe you need it a bit simpler but still fast, but not as fast as Rust?

@snonux I’m running Go now since about 2009 with the early releases. I came from #erlang due to concurrency, cool system but for many hard to understand. So I really like #golang for many use cases. Just took a look into #rustlang, just for fun. But it’s not my syntax (and I don’t have the use case).

Maybe I should take a look into your paper.