In article <Pine.LNX.4.60.0407222054440.8991 / harp.ngdc.noaa.gov>,
  "Ara.T.Howard" <ahoward / noaa.gov> writes:

> i wouldn't chose the word 'confusing' - reading the man page of recv makes it
> sound VERY close to what you want.

Yes.  It is not surprised that BasicSocket#recv and IO#sysread is
similar because recv is a system call which is similar to read system call.

Also BasicSocket#recv is stdio unfriendly similar to IO#sysread:

% ruby -rsocket -e 'TCPSocket.open("www.ruby-lang.org", 80) {|s| 
s.print "GET / HTTP/1.0\r\n\r\n"
p s.gets
p s.recv(100)
}'
"HTTP/1.1 302 Found\r\n"
-e:4:in `recv': recv for buffered IO (IOError)
        from -e:4
        from -e:1:in `open'
        from -e:1

I think it is confusing that assign different meaning for abbreviation
and non-abbreviation of single word: "recv" and "receive".  Their
meaning doesn't contain stdio friendly/unfriendly property.

> so i'd suggest
>
>    receive
>    accept
>    reap

Since there is a system call "accept" and TCPServer#accept, IO#accept is
not an option.

> i like the sound of
>
>    IO#reap
>
> alot, eg. :
>
>    #
>    # read all chars available on pipe
>    #
>      buf = pipe.reap
>
> i think this method is much needed and no name exists for something like it.
> if we pick one that is memorable people will use it and remember it.

I like a method name longer than 4bytes ("read".length).  Because I
encourage IO#read over IO#readpartial in usual case.
-- 
Tanaka Akira