deprecating std.stream, std.cstream, std.socketstream
Walter Bright
newshound2 at digitalmars.com
Mon May 14 19:56:08 PDT 2012
On 5/14/2012 8:02 AM, Steven Schveighoffer wrote:
> 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.
I'll say in advance without seeing your design that it'll be a tough sell if it
is not range based.
I've been doing some range based work on the side. I'm convinced there is
enormous potential there, despite numerous shortcomings with them I ran across
in Phobos. Those shortcomings can be fixed, they are not fatal.
The ability to do things like:
void main() {
stdin.byChunk(1024).
map!(a => a.idup). // one of those shortcomings
joiner().
stripComments().
copy(stdout.lockingTextWriter());
}
is just kick ass.
More information about the Digitalmars-d
mailing list