On 09/17/2011 11:17 AM, Xavier wrote:
"Nick Sabalausky"<a@a.a> wrote in message
news:j51m0l$2prg$1...@digitalmars.com...
"Xavier"<x...@nospam.net> wrote in message
news:j51jsp$2lln$1...@digitalmars.com...
"Jonathan M Davis"<jmdavisp...@gmx.com> wrote in message
news:mailman.2921.1316239886.14074.digitalmar...@puremagic.com...
I definitely prefer D to C++, but I honestly think that your hatred
of C++
(which you have expressed on several occasions) clouds your judgement
on the
matter. Many, many programmers are fine with C++, and while many
programmers
may like C++ to be improved or would like a language that's similar
to C++ but
without as many warts, that doesn't mean that they're going to be in
a hurry
to try out D. And many, many of the people who have problems with C++
use
languages such as C# and Java instead and are fine with that. D has a
major
uphill battle to truly become as relevant as any of those languages
are
regardless of how much better it may be.
There is something wrong with that last sentence. Especially since in
the preceding material that I snipped, you noted that the compilers
for D are not up to snuff. You seem to be noting its deficiencies but
wanting it to be "better" somehow, maybe for some of it's "neat
features"? Perhaps D just has to grow up before it can battle
anywhere, let alone on hills?
In both this and your other post, you're conflating the notions of the
"language quality" vs "implementation quality". The two are not the
same.
They are not necessarily orthogonal though either. Surely you are just
focusing on design and maybe semantics and maybe even syntax, but those
aren't the only criteria and of those things, C++ and D have more in
common than they have not in common. For instance, if implementation
quality is bad, maybe the language's implementability is bad. If so, then
it's a language "quality" issue. Now you can argue that C++ is much worse
in regards to implementability, but that doesn't really say anything more
than something like "D is better than the POS that C++ is". To be
markedly different from C++, D would have to be thought of as being in a
different category than "which is the better POS?", but of course it
cannot, for it comes from the same family, "one generation newer than
C++".
Now, yes, D effectively has one implementation (the DMD frontend), but
even considering that, the notions are still worth separating:
For one thing, implementation quality is much easier to improve than
language quality.
That may be true if one had a language that indeed was at some superior
design level, but D is not at that level. It's at the same level as C++
is, so there is major room for improvement (i.e., requires a different
language) in a number of areas.
An implementation deficiency can always be fixed. But a language
deficiency can usually only be fixed if it's an additive change, which:
#1 Rules out all non-additive improvements, and #2 Often forces an
inferior solution to be used, creating language cruft.
Secondly, it *IS* possible, and not at all uncommon, for a language
deficiency to be MORE severe than an implementation deficiency. For
example, updating header files and keeping them in-sync with the
implementation is far more time consuming than working around any of
the bugs in D's module system. Another: Certain details about C++
*force* the language to be slow-to-compile. That CANNOT be improved. As
a consequence, many C++ projects take hours to compile. Unless you
shell out the $$$ for a distributed-compilation cluster. Either way,
that's much more costly than dealing with any D bug I've come across in
the last year (yes, there were some severe ones in the past, but those
are now fixed).
So large scale software development is the only concern? Seems rather
contrived point. C'mon now, a lot of software is NOT that. And notice too
that for software development that is not that, "intellisense"
dramatically reduces the number of times a programmer hits the compile
button.
I don't need intellisense, I'm fine with emacs. And compiling D code is
usually so much faster than compiling C++ code that it is not even
funny. Recompiling is not costly at all.
That one thing is not as big an issue and certainly it pales in
comparison to other language design flaws, which C++ and D both share.
Exactly which flaws are you talking about? Either get concrete so that
your statements can be discussed and someone gets smarter in the process
or stop making noise please.
So no, it's NOT a contradiction that D can be a better language while
still having implementation issues.
Anyway, you can talk until you are blue in the face, but you can't
convince me that D and C++ aren't in the same category (as far as
language design goes).
Well, nobody wants to convince you that D and C++ don't belong to the
same category. (as far language design goes). Whatever that means to you.
But talking is worthless indeed. All your arguments are based on the
wrong assumption that C++ and D are basically equal.
You can call C++ a POS, but then, to me, that
means that at best, D is just a better POS. But not to end this post on a
bad note/word, I admire C++ a little bit. I certainly don't hate it.
Hating C++ is not a requirement for liking D better. Actually writing
some lines of D code on the other hand, is.
I can deal with it's shortcomings for now, so I could probably deal with
D's also, but if I was thinking about jumping ship, I'd be swimming
toward an island and not another ship.
If I want to reach an island, I usually don't swim. I take a ship that
gets me there.