Sergey Gromov wrote:
Sun, 08 Mar 2009 19:24:32 -0700, Andrei Alexandrescu wrote:

As far as signatures of functions in std.string, I agree that those not needing a string of immutable characters should just accept in Char[] (where Char is one of the three character types). That should make people using mutable and immutable strings equally joyous.

So you agree that *the standard library* should avoid using immutable
when it's not strictly necessary after all.

I do.

This is quite in contrary
to what Walter says.

It is. This may be because of a slight difference in philosophy; I think any entity (function, type) of the standard library should accept the most general types it could conceivably work with. In fact I'd be happy put all or most significant algorithms in std.string inside std.algorithm.

  Now the question is, how any *other* libraries
differ?  I usually don't care about how you use immutable in your
personal code.  But if there is an XML library which takes immutables
everywhere,  it seriously limits my freedom in chosing my coding style.

I agree but disagree with "seriously".

Immutable string manipulation produces tons of garbage objects.

This I disagree with. There may be extra copies, but you also save other copies. Also there's never risky aliasing - coding with immutable strings is safe. D simply can't afford to seriously suggest in this day and age a programming style with aliased mutable strings.

Every
time you want to replace '\\' with '/' you get garbage, if not as many
times as you encounter '\\' in the string.  This is something we avoided
at any cost in mobile Java games.  This is the attitude which makes
"large" Java applications so memory-hungry.  I have a hard time to
believe this magically became OK in D.

It does become OK (albeit not magically) in D because D does offer you the option to work with char[] if you need to. I understand that the problem of you calling into libraries only taking string still remains, but really you can't have everything. I think we're in better shape than most languages.


Andrei

Reply via email to