title: What is the purpose of having both NSMutableString and NSString?
body: <p>Why does Objective C provide both class NSString and subclass NSMutableString rather than just provide NSMutableString?  Isn't a NSString equivalent to "const NSMutableString"?</p>
  
  <p>In C++, you have only one string class, std::string, and if you want a constant you declare a const std:string.</p>
  
  <p>I'm interested in knowing why I shouldn't just use NSMutableString everywhere and never bother with NSString?  There must be a reason, or the language designers wouldn't provide both.  maybe it takes up less storage or something?</p>