
On Mon, Mar 26, 2012 at 4:57 AM, Simon Marlow
Remember that FilePath is not part of the debate, since neither [Char] nor Text are correct representations of FilePath.
Yes.
If we want to do an evaluation of the pedagogical value of [Char] vs. Text, I suggest writing something like a regex matcher in both and comparing the two.
One more thing: historically, performance considerations have been given a fairly low priority in the language design process for Haskell, and rightly so. That doesn't mean performance has been ignored altogether (for example, seq), but it is almost never the case that a concession in other language design principles (e.g. consistency, simplicity) is made for performance reasons alone. We should remember, when thinking about changes to Haskell, that Haskell is the way it is because of this uncompromising attitude, and we should be glad that Haskell is not burdened with (many) legacy warts that were invented to work around performance problems that no longer exist. I'm not saying that this means we should ignore Text as a performance hack, just that performance should not come at the expense of good language design.
For pedagogical purposes (which seems to be the primary argument for String = [Char]), I am far less concerned about performance than correctness. After going through the discussion this morning again, looking at various arguments, I am not really sure that Haskell isn't burdened with legacy warts ;-) -- Gaby