Phobos packages a bit confusing

retard re at tard.com.invalid
Mon Nov 30 06:09:37 PST 2009


Mon, 30 Nov 2009 21:06:21 +0800, KennyTM~ wrote:

> On Nov 30, 09 19:01, Ary Borenszweig wrote:
>> KennyTM~ wrote:
>>>>> By
>>>>> far the two most important pieces of I/O functionality I need are:
>>>>>
>>>>> 1. Read a text file line-by-line.
>>>>
>>>> foreach (line; new Lines!(char) (new File ("foobar.txt"))) Cout
>>>> (line).newline;
>>>> }
>>>>
>>>>
>>> yuck.
>>
>> Yuck?? I find that code very elegant. How would you like it to be?
> 
> Python do it like this:
> 
> for line in open("foobar.txt"):
>    print(line)
> 
> How many things you need to explain for that elegant code? Line? File?
> Cout? .newline?

Your argumentation is getting ridiculous. Reading and printing lines of a 
text file isn't by any means a good measure of standard library quality. 
I could define something like

  void printFileLines(string fn) { ... }

in my code and use it like this:

  printFileLines("foobar.txt");

When I'm programming with a systems programming language, I really do 
want to know if it reads the whole 100 GB file into memory before 
iterating or if not, what kind of buffer it is using. I often also need 
to work with endianess issues, codepage conversions, file system 
exceptions etc. If I only need to write simple code (== programming in 
the small) I might want to use some scripting language instead.

It's really hard to please both audiences without cluttering the stdlib 
api.



More information about the Digitalmars-d mailing list