I actually really like immutable data - I was (and still am, when I don't have to get work done) a big fan of Haskell. The problematic part is when you have a language that encourages an imperative programming style, and yet passing an object by value is only one character off from passing it by reference.