Это обратная сторона этого вопроса: Почему строки не могут быть изменяемыми в Java и .NET?
Был ли этот выбор сделан в Ruby только потому, что операции (добавления и тому подобное) эффективны для изменяемых строк, или была какая-то другая причина?
(Если речь идет только об эффективности, это может показаться странным, поскольку в остальном дизайн Ruby, по-видимому, не придает большого значения облегчению эффективной реализации.)