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