Go言語ではfmtなんて素敵なのが標準で推奨されてますね。
RubyにもKernel.#formatがあります。
format('%s : %s', Time.now, 1 + 20) #=> "2014-07-02 23:19:45 +0900 : 21"
C 言語の sprintf(3)と同じフォーマットを使えるので、以下のようにゼロ揃えなんかもできます。*1
format("%#06x", 12) #=> "0x000c"
返ってくるのはString型です。
format('%s : %s', Time.now, 1 + 20).class => String
短い奴ならば、今まで通り#{}で捩じ込む形式、
変数がゴチャゴチャしてて読み辛い場合や桁揃えをしたいはformat
といった使い分けが良いのかも知れません。
*1:これを書いていてはじめて知ったのですが、0xも埋め文字に入るのですね...