Ary Borenszweig wrote:
Jeremie Pelletier wrote:
Ary Borenszweig wrote:
Walter Bright wrote:
Denis Koroskin wrote:
 > On Sat, 26 Sep 2009 22:30:58 +0400, Walter Bright
 > <newshou...@digitalmars.com> wrote:
 >> D has borrowed ideas from many different languages. The trick is to
 >> take the good stuff and avoid their mistakes <g>.
 >
 > How about this one:
> http://sadekdrobi.com/2008/12/22/null-references-the-billion-dollar-mistake/
 >
 >
 > :)

I think he's wrong.

Please, please, please, do some fun little project in Java or C# and drop the idea of initializing variables whenever you declare them. Just leave them like this:

int i;

and then later initialize them when you need them, for example different values depending on some conditions. Then you'll realize how powerful is having the compiler stop variables that are not initialized *in the context of a function, not necessarily in the same line of their declaration*. It's always a win: you get a compile time error, you don't have to wait to get an error at runtime.

Until you do that, you won't understand what most people are answering to you.

But I know what you'll answer. You'll say "what about pointers?", "what about ref parameters?", "what about out parameters?", and then someone will say to you "C# has them", etc, etc.

No point disussing non-null variables without also having the compiler stop uninitialized variables.

All null values are uninitialized, but not all initializers are null, especially the void initializer.

I don't see your point here. "new Object()" is not a null intiializer nor "1"... so?

Object o = void;

 You can't always rely on initializers
in your algorithms, you can always rely on null.

Yes, I can always rely on initializers in my algorithm. I can, if the compiler lets me safely initialize them whenever I want, not necessarily in the line I declare them.

Just out of curiosity: have you ever programmed in Java or C#?

Nope, never got interested in these to tell the truth. I only did C, C++, D and x86 assembly in systems programming, I have quite a background in PHP and JavaScript also.

I played with a lot of languages, but those are the ones I use on a daily basis. I would like to get into Python or Ruby someday, I only hear good things about these two. I know LUA has less overhead than Python, but it's more of a support language to implement easy scripting over C than a standalone language, I already have my LUA bindings for D ready to do just that.

I like extremes :)

Reply via email to