Easy sockets - don't exist yet?

Vincent thornik at gmail.com
Sat Dec 3 11:08:53 UTC 2022


On Monday, 10 October 2016 at 02:54:09 UTC, Jonathan M Davis 
wrote:

> Quite some time ago, it was decided that the *stream modules as 
> they were were unacceptable and that they needed to be replaced 
> with something range-based

That's the key! Absolutely dilettantish solution of "profi", 
biased on ranges.
Unfortunately even TECHNICALLY stream never was a "range"! It's 
more like "queue of bytes", where you can never be sure you even 
get these bytes.

Moreover - "socket stream" is such a specific stream that you 
cannot assume even bytes data! Many protocols rely on STRINGS, so 
SocketStream have to have dual nature - byte-based and 
string-based. Even worse - if you read stupid HTTP standard, it 
allows for server to reply with strings (header), followed by RAW 
BYTES(!). Surprise! So in this light we cannot speak about ranges 
AT ALL. We need stream, which supports strings and at the same 
time bytes. And all of that in convenient way, not just "auto b = 
GimmeStupidHeapOfBytesWhichAreString".

Anyway, it's quite unprofessional to remove SocketStream: it DOES 
NOT fit at all in "range" ideology (as well as, say, Window or 
Button) and lives own life. "Ranges" just PART of library, not a 
whole library! In other words not everything in a library should 
follow "ranges ideology".

I ask to return standard SocketStream and keep it until that 
"smartie" (who remove it) will write fully functional replacement.

Nobody will use D if maintainers will stupidly throw away classes 
by own wish. Keep functionality as big as possible, because D 
even now, after "stable language", still lie on road edge.


More information about the Digitalmars-d-learn mailing list