Ruby 3x3: Matz, Koichi, and Tenderlove on the Future of Ruby Performance
I could be reading the tone of the interview wrong, but it seems like there&#x27;s a weird sort of anti-intellectualism bent to the Ruby community.<p>In the middle, there&#x27;s this exchange:<p><pre><code>  Jonan: So you would just use pointers to point to those immutable objects?
  Koichi: Yes. Also, I want to note that immutable doesn&#x27;t mean frozen object.
  Frozen objects can contain mutable objects. So I mean those immutable objects which only contain children
  that point to immutable objects.
  Jonan: So if we had a nested hash, some large data structure, we would need to
  freeze every object in that in order to reference it this way. Is there a facility in Ruby right now to do that?
  I think I would have to iterate over that structure freezing objects manually today.
  Matz: Not yet.
  Jonan: So there might be?
  Matz: We need to provide something to freeze these objects.
  Aaron: A deep freeze.
  Matz: Yes, deep freeze.
  Jonan: Deep Freeze is the name of this feature maybe? I think that would be an excellent name for it.
</code></pre>
So yes, they all agree that Ruby&#x27;s current &#x27;frozen&#x27; feature doesn&#x27;t grant real immutability guarantees.<p>But then at the end...<p><pre><code>  Jonan: OK. So then, a friend asked me when I described guilds, he writes a lot of Haskell,
  he asked me when we are we going to have &quot;real immutable objects&quot;, and I don&#x27;t quite know what he means.
  Is there some distinction between an immutable object in Ruby and an
  immutable object in a different language that’s important?
  Matz: For example in Haskell, everything is immutable, it’s that kind of language, everything is immutable from day one.
  Jonan: Yes.
  Matz: But in Ruby we have mutable objects, so under that kind of situation we need a whole new construct.
  Aaron: Frozen objects should really be immutable. It&#x27;s really immutable.
  Jonan: OK.
  Aaron: I don&#x27;t...
  Jonan: You don&#x27;t know what this person who air-quoted me &quot;real immutable&quot; was saying?
  Aaron: Yeah I don&#x27;t know why they would say &quot;real immutable&quot;.
  Jonan: Should I unfriend him on Facebook? I think I&#x27;m going to after this.
  Matz: At least tell him if you want &quot;real immutable&quot; go ahead and use Haskell.
  Jonan: I think that&#x27;s an excellent option, yeah.
  Aaron: You just to need to say to them quit &quot;Haskelling&quot; me.
  Jonan: I should, I’ll just tell them to quit &quot;Haskelling&quot; me about immutable objects. 
</code></pre>
I get that they are joking a bit, but do they really not understand that the Haskeller is referring to the lack of deeply immutable objects? The hostility seems a bit weird to me, given that languages like Haskell push forward our understanding of the usefulness of things like immutability, which then get absorbed into other languages (like Ruby, clearly).