Walter Bright, el 9 de mayo a las 11:23 me escribiste: > 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.
Exported templates was unpractical and unimplementable AFAIK (but I guess you know that better than me). And C++ is an ISO standard language. D is not. If something is unpractical and unimplementable in D (I don't think is the case of contract inheritance) why didn't you removed a long time ago when you decided that it wasn't useful? And maybe you are right, but the bottom line is how D is perceived. People usually don't go through the C++98 standard to learn C++, but it goes through the D specs to learn D. Nobody talks about exported templates in C++ because they don't exist in reality, but the D specs talks about features that are missing in what is supposed to be a finished version. And that makes D looks bad. > >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? Official? I don't see any official support for D in GDB. I can only find this patches: http://www.dsource.org/projects/gdb-patches/ And this thread about integrating the patches in GDB: http://www.digitalmars.com/d/archives/digitalmars/D/Getting_D_language_patch_into_GDB_82597.html But I can't see any mention in the official GDB documentation and certainly it doesn't automatically recognize D programs as such. > >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. I don't think it's a *showtopper*. I'm trying to explain one of the reasons I think D is perceived as a toy/incomplete/not-ready-for-business language. But I certainly think D 1.0 should be finished before 2.0 though =) > 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 I know that. Everybody knows that. And I don't think anybody is arguing that. Lack of bug-fixing is not a mentioned problem AFAIK. > >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. How is that? Most runtime code is not used by the user directly. And for this item I think not merging it does more damage than introducing a breaking change (is much better to introduce a breaking change to solve this problem than to add a predefined Posix version ;). -- Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/ ---------------------------------------------------------------------------- GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05) ----------------------------------------------------------------------------
