Conflict between std.file write() and std.stdio write()

Craig Dillabaugh craig.dillabaugh at gmail.com
Thu Oct 3 11:57:20 PDT 2013


On Thursday, 3 October 2013 at 18:12:01 UTC, Jonathan M Davis 
wrote:
> On Thursday, October 03, 2013 15:22:28 Craig Dillabaugh wrote:
>> It seems that std.file should include a writeText() function 
>> for
>> the sake of consistency that is the above alias. When you come
>> across readText() in the documentation you sort of expect that
>> such a function would exist, and then you spot write() below 
>> it,
>> and think hey that does what I need. Then you hit upon the
>> syntax error if you are also using std.stdio (which is a very
>> commonly used module).
>> 
>> Adding writeText() doesn't really add much to the library, but
>> having to jump through hoops (as minor as they may be) to 
>> perform
>> such a simple op is a bit of a pain for people new to the
>> language.
>
> writeText would be redundant. write will already write 
> arbitrary data to a file
> - including strings. writeText would add no functionality. 
> Functions should
> add actual value, or they just clutter up the library.
>
> Conflicting functions is just part of life. The module system 
> is designed to
> let you disambiguate them. We're not going to try and make all 
> of the function
> names unique just because you might import a module with a 
> conflicting
> function. If write is the best name for the function, then 
> that's what we'll
> use, even if it conflicts with a function in another module. To 
> do otherwise
> would be to ignore the features of the module system and force 
> us to come up
> with worse names just to avoid conflicts.
>
> - Jonathan M Davis

Fair enough. As you point out the fix is pretty simple.

However, I can't seem to remember in C++ or any other language 
(not that I know all that many other languages) coming across a 
function in the standard library that conflicted with another 
function in the standard library in this way.  I am likely to get 
corrected on that claim though :o)

Maybe it would be worth noting this conflict in the 
documentations for newbies.

Craig


More information about the Digitalmars-d-learn mailing list