deprecating std.stream, std.cstream, std.socketstream
Steven Schveighoffer
schveiguy at yahoo.com
Mon May 14 08:02:11 PDT 2012
On Sun, 13 May 2012 17:38:23 -0400, Walter Bright
<newshound2 at digitalmars.com> wrote:
> This discussion started in the thread "Getting the const-correctness of
> Object sorted once and for all", but it deserved its own thread.
>
> These modules suffer from the following problems:
>
> 1. poor documentation, dearth of examples & rationale
>
> 2. toHash(), toString(), etc., all need to be const pure nothrow, but
> it's turning out to be problematic for doing it for these classes
>
> 3. overlapping functionality with std.stdio
>
> 4. they should present a range interface, not a streaming one
I keep trying to avoid talking about this, because I'm writing a
replacement library for std.stream, and I don't want to step on any toes
while it's still not accepted.
But I have to say, ranges are *not* a good interface for generic data
providers. They are *very* good for structured data providers.
In other words, a stream of bytes, not a good range (who wants to get one
byte at a time?). A stream of UTF text broken into lines, a very good
range.
I have no problem with getting rid of std.stream. I've never actually
used it. Still, we absolutely need a non-range based low-level streaming
interface to data. If nothing else, we need something we can build ranges
upon, and I think my replacement does a very good job of that.
-Steve
More information about the Digitalmars-d
mailing list