
From: Dean Michael Berris <mikhailberis@gmail.com> On Fri, Jan 28, 2011 at 7:20 PM, Dean Michael Berris <mikhailberis@gmail.com> wrote:
So the interface I was thinking about (and suggesting) is a lot more minimal than what rope or std::string have exposed. I think when I do finish that design document (with rationale) it would be clear why I would like to keep it immutable and why I would prefer it still be called a string.
Let me finish that document -- expect something over the weekend. :)
And I stopped before I write too much -- the initial version is already up: https://github.com/downloads/mikhailberis/cpp-string-theory/cpp-string-theor...
-- I'll give it more information and the actual interfaces and implementation as soon as I get some Z's. :)
I'm sorry but this "document" full of mistakes and misses serious points: 1. "Contiguity" Continuity and c_str() is one of the most important properties of C++ string (that is BTW required by C++0x) Reason: c_str() is a boundary to almost every library existing in C++ and C world. So removing this "bad" feature makes it useless for vast majority of string users. Note: all strings around in all languages are continuous for the reasons. 2. Efficiency - have you forgotten about std::string::reserve? 3. non-uniform-memory-architecture Give me a break... Who uses NUMA for string processing?! 4. About string builder. Most languages require is as they don't have "reserve" also if you want efficient string builder use std::ostream with nice stream buffer. Don't copy paradigms that do not belong to C++! 5. Makeing all operations lazy you bring more segmentation to memory as it is not recycled, also it reduces performance as does not have "liner" location in cache/ 6. Encoding is extrinsic to strings ?!?!?! All the discussion in started because we need UTF-8 in strings now we are back to the beginning? This is classic example of how trying to do something "cool" gives us theoretically interesting and cool things that are useless in real world where simple and straight forward things actually work a way better. So you are welcome to propose overcomplicated interface that tries to optimize some corner cases and finally makes it useless. Sorry, But what you had written has nothing to do to reality. SGI had ropes... Where they are today? Artyom