From: Brad Rhine <[EMAIL PROTECTED]>
Date: Wed, 2 Aug 2006 14:40:43 -0400
On Aug 2, 2006, at 2:37 PM, Theodore H. Smith wrote:
Why make your code do all sorts of awkward tricks with encodings,
(including but not limited to auto-convert on append), when you can
just assume all your data is UTF-8?
Because assumptions are dangerous. ;)
What if it's a guideline and not an assumption? Something like "use
utf-8 for most data processing, and utf-16 simply for input/output"?
Part of the speed increase my FastString class gets over Charles's
class based approach is that I don't do anything with encodings. Why
should I? I've never had a problem with it and no users have reported
it to me.
By eliminating a case which might occur less than 1% of the time, I
can get maybe 30% extra speed. And even that 1% of the time only
proves to be a design error on the developer's part, because he'd get
faster speed by using UTF-8 all throughout his app.
If there's anything I've learnt about string processing, it's that
it's really best to use one model for your data. Whether that's C++
or RB or anything.
In C++ we have so many string classes, CString (via MFC), stl's
string, char*, and then most libraries tend to have their own string
class, like CFString, or NSString. Then you need to write an app
using libraries, some which use char*, others using string, others
using NSString... it becomes a mess, complex, and slow, to do all the
interconversion.
Far quicker to just use one model, where possible.
Just the same for encodings. UTF-8 does everything so there's no
advantage in using anything other than UTF-8 except for input and
output.
It should be considered a design error to be processing strings in
more than one encoding, except to convert it to and from the dominant
encoding.
Well, I think you can assume that people should stick to your
suggested design principles.
--
http://elfdata.com/plugin/
_______________________________________________
Unsubscribe or switch delivery mode:
<http://www.realsoftware.com/support/listmanager/>
Search the archives of this list here:
<http://support.realsoftware.com/listarchives/lists.html>