You don't see much ruby anymore that uses `DelegateClass`, the primary interface to delegate.rb. It does use metaprogramming but no more than Forwardable does. Also, it's "the good kind" of metaprogramming: active at program boot only, not a whiff of method_missing. This is closer to a lisp or rust macro: code which writes code. Exactly what ruby excels at.
https://github.com/ruby/ruby/blob/afd46429fcdb83aa9fa7c193ed...
SimpleDelegator is still pretty common though, I wouldn't blink if I saw that while reviewing a PR.