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

Reply via email to