On 2007-11-22, Hrvoje Niksic <[EMAIL PROTECTED]> wrote: > "Diez B. Roggisch" <[EMAIL PROTECTED]> writes: > >>>> Language comparisons are sometimes good. They are best when >>>> they are free of FUD. >>> >>> So why Python's IO cannot yield f.eof() as easily as Ruby's can? :) >> >> Because that requires buffering, something that affects speed. > > I don't get it, Python's files are implemented on top of stdio > FILE objects, which do buffering and provide EOF checking (of > the sort where you can check if a previous read hit the EOF, > but still). Why not export that functionality?
You have to make a failed read attempt before feof returns true. >> Considering your own repeated remarks about "I'd only use ruby >> if it wasn't slower than Python", I'd think you could value >> that. > > I see no reason why exposing the EOF check would slow things down. I think it's too low level, and so doesn't do what naive users expect. It's really only useful, even in C, as part of the forensic study of a stream in an error state, yet naive C programmers often write code like: while (!f.feof()) { /* Read a line and process it. } ...and are flumoxed by the way it fails to work. I think Python is well rid of such a seldomly useful source of confusion. -- Neil Cerutti -- http://mail.python.org/mailman/listinfo/python-list