Javaでの文字列連結の話題です。
「なにがなんでもStringBuilderを使うのは良くない」のは「可読性が悪い」から。
私も合意します。ただし、私の場合、少し言い方が違います。
「できるだけStringBuilderを使わずに、+演算子を使おう」です。
その理由を述べます。
Javaでは、+演算子はStringBuilder を使ったバイトコードに変換してくれますね。
ところが、将来のJavaでStringBuilderより性能が良いクラスが出たとします。このクラスを仮に StringGenerator としましょう。そして、Javaは+演算子をStringBuilderではなく、StringGeneratorを使ったバイトコードに変換してくれるかもしれません。
StringBuilderを使ったレガシーコードは、StringGeneratorに書き換えなければ性能が良くなりません。しかし、+演算子を使ったレガシーコードは、書き直さなくても、StringGeneratorにコンパイルしてくれますから、性能は良いわけです。
つまり、+演算子は、「可読性が良い」だけではなく、どのクラスを使うかを明示しない「抽象化した表現」と見ることもできるんじゃないかなと。
もちろん、「+演算子を適切に使いこなせる」ことが前提です。