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