An Invariant WTH?
Chad J
gamerChad at _spamIsBad_gmail.com
Sun Nov 4 16:15:20 PST 2007
import std.stdio;
void main()
{
char[] hello = "Hello world!";
writefln( hello );
}
----------------------
main.d(5): Error: cannot implicitly convert expression ("Hello world!")
of type invariant char[12u] to char[]
----------------------
I know that `string hello = "Hello World!";` would cause the desired
results, but this makes me have to learn all about constness and
invariance just to make very trivial programs. More learning curve =
BAD. Also, if I wanted to do an inplace toLower or somesuch on the
"Hello World!" string, then things get more complicated than in 1.0.
It also disturbs me that "string" is just one of "wstring" and
"dstring", and not a more useful generic string type like the dstring
that Chris Miller wrote.
Not to mention the massive drain on D community's and Walter's resources
that this has caused.
D2.0 just got closures, and I still get the feeling that I don't like
const. So I'm wondering if it is irrational to have this feeling that
I'm getting some sort of ugly const thing shoved down my throat.
Bitching and moaning aside, there's got to be a reason we are doing this
const thing. Something good. Something besides "C/C++ needed it to be
less buggy" - C and C++ tend to need a lot of bug fighting measures in
places that D conveniently doesn't really need much help in. Also,
something besides "it'll make your program 1% faster". I was not
convinced by those.
It's all cost-benefit. I'm seeing a lot of cost with little or dubious
benefit. So why should I be convinced that this is the right thing to
do? Why should I be willing to write D2.0 code?
More information about the Digitalmars-d-learn
mailing list