On Tuesday, 15 May 2012 at 02:56:20 UTC, Walter Bright wrote:
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'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.
[...]
I have to say, I'm with Steve on this one. While I do believe
ranges will have a very important role to play in D's future I/O
paradigm, I also think there needs to be a layer beneath the
ranges that more directly maps to OS primitives. And as D is a
systems programming language, that layer needs to be publicly
available. (Note that this is how std.stdio works now, more or
less.)
-Lars