What's the current state of D?
Walter Bright
newshound1 at digitalmars.com
Sat May 9 11:23:23 PDT 2009
Leandro Lucarella wrote:
> D1 is INCOMPLETE (for example pre/post conditions inheritance are
> missing). I tend to forget which features are there for real what aren't
> (there are a few, true, but still).
Array ops weren't there for a long time, many argued that D1 wasn't
complete without them, and a few months ago I added them in.
As far as I can tell, nobody cared about array ops.
In C++ land, only one compiler actually completely implements C++98, and
this is after more than 10 years. (Exported templates and template name
lookup rules remain unimplemented by major compilers.) (P.S. Digital
Mars C++ does the correct name lookup rules!) The fact is, nobody
actually cares about those incomplete features. Nobody uses exported
templates, even if they are using a compiler that supports it.
So that leaves contract inheritance. I find it hard to see how not
having it is a showstopper for using D1. Contracts in D haven't been the
big win I thought they might be at first. They aren't use much at all.
There are a lot of other issues that do make a big difference, and those
are the issues that get attention.
We've got only so many chips (time) to play with, and it's real
important that we play them for maximum effect.
> Another very *BIG* issue is lack of mainstream tools support.
>
> C++98 was finished before starting C++0x. A lot of effort was made to make
> mainstream tools to support C++. Most tools demangle C++ names (even when
> they aren't standard!). At least GDB should be able to do that, and
> Valgrind and GNU binutils, if you want people to be comfortable working
> with D. There are patches here and there but nothing works out of the box.
GDB does have an official D mode. There are demanglers for D
identifiers. Can you submit patches for GDB to the official source tree?
> I think what D1 is *really* missing is that 2 things: completeness and
> tools support. Without that is really hard to take it seriously.
>
> I think the D team should be working more in that direction before
> finishing D2. I know is very boring comparing it to making D2, but I think
> that is what is transmitted from D maintainers: "D1 is boring, don't pay
> attention to it, D2 is fun, let's play with that!". And this is what
> happening. People are playing with D2 and forgetting to finish D1.
It isn't about boring. It's about allocating our very limited resources
for maximum effect. If I thought that contract inheritance was a
showstopper for D1, it'd move way up on the priority list. But I have a
hard time believing it is a showstopper, like array ops turned out to
not be.
Most of the work I do on dmd is bug fixes, and nearly all of those wind
up in D1 as well. It's just not true that D1 is being overlooked or
ignored, and the D1 changelog should amply illustrate that.
http://www.digitalmars.com/d/1.0/changelog.html
> The Tango vs. Phobos is still a *BIG* issue for D1. I think don't
> addressing that is a huge error. It's only hurting D1 and preventing its
> adoption.
Doing a merge would be a very breaking change. D2's support for Tango is
probably the biggest breaking change in moving D1 code to D2.
> The result is 2 incomplete, unsupported (by mainstream tools) languages.
More information about the Digitalmars-d
mailing list