July 23, 2009
Jarrett Billingsley wrote:
> On Wed, Jul 22, 2009 at 10:00 PM, Andrei
> Alexandrescu<SeeWebsiteForEmail@erdani.org> wrote:
>> Or like driving an American car vs. a Japanese or European car.
>>
> 
> Yeah, what *is* the deal with that?  In terms of little convenience
> features, American cars feel outright primitive compared to Japanese
> and European cars..
> 
> Sorry for the OT :P

Would you believe there is a guy in this newsgroup who'd manage to keep a straight face while saying that Ford is better designed than Mercedes?

Andrei
July 23, 2009
Jesse Phillips wrote:
> On Wed, 22 Jul 2009 18:27:50 -0500, Andrei Alexandrescu wrote:
> 
>> Walter Bright wrote:
>>> http://www.reddit.com/r/programming/comments/93jh5/
> ask_proggit_the_d_programming_language_looks/
>> I noticed some people complain about installation difficulties, is there
>> progress on the community project for writing installer for the three
>> major OSs?
>>
>> Andrei
> 
> I'm intending a rework of:
> 
> http://www.prowiki.org/wiki4d/wiki.cgi?D__Tutorial/InstallingDCompiler
> 
> but haven't got around to it and can only cover Linux and Windows.
> 
> The end result will be at:
> 
> http://www.prowiki.org/wiki4d/wiki.cgi?D__Tutorial/StartingWithD/Compiler/
> DMD

Thanks, we need more of that stuff. I think this is a common experience (pasted from the reddit discussion):

==========
i couldn't manage to get the command line toolchain up and running in linux either. yes, part of it was me being lazy, but there really is no good documentation saying "this is where your D installation needs to go, these are the environment variables you need, this is how to write a makefile or equivalent, this is the filesystem layout the build tool expects, this is how to use a c library, etc".
==========

A while ago Walter put a good amount of work into accelerating code generation by avoiding writing object files to disk. He mentioned that that's a nice feature that old and new users will notice. I agree with that, but I also think installation has a huge importance. Having streamlined code generation but a crappy installer is like showing up at a first date pocketing a condom, but wearing an MSDN conference T-shirt.


Andrei
July 23, 2009
On Wed, 22 Jul 2009 22:19:29 -0500, Andrei Alexandrescu wrote:

> Jesse Phillips wrote:
>> On Wed, 22 Jul 2009 18:27:50 -0500, Andrei Alexandrescu wrote:
>> 
>>> Walter Bright wrote:
>>>> http://www.reddit.com/r/programming/comments/93jh5/
>> ask_proggit_the_d_programming_language_looks/
>>> I noticed some people complain about installation difficulties, is there progress on the community project for writing installer for the three major OSs?
>>>
>>> Andrei
>> 
>> I'm intending a rework of:
>> 
>> http://www.prowiki.org/wiki4d/wiki.cgi?D__Tutorial/InstallingDCompiler
>> 
>> but haven't got around to it and can only cover Linux and Windows.
>> 
>> The end result will be at:
>> 
>> http://www.prowiki.org/wiki4d/wiki.cgi?D__Tutorial/StartingWithD/
Compiler/
>> DMD
> 
> Thanks, we need more of that stuff. I think this is a common experience (pasted from the reddit discussion):
> 
> ==========
> i couldn't manage to get the command line toolchain up and running in
> linux either. yes, part of it was me being lazy, but there really is no
> good documentation saying "this is where your D installation needs to
> go, these are the environment variables you need, this is how to write a
> makefile or equivalent, this is the filesystem layout the build tool
> expects, this is how to use a c library, etc". ==========
> 
> A while ago Walter put a good amount of work into accelerating code generation by avoiding writing object files to disk. He mentioned that that's a nice feature that old and new users will notice. I agree with that, but I also think installation has a huge importance. Having streamlined code generation but a crappy installer is like showing up at a first date pocketing a condom, but wearing an MSDN conference T-shirt.
> 
> 
> Andrei

Oh, I know, I posted this response:

http://www.reddit.com/r/programming/comments/93jh5/ ask_proggit_the_d_programming_language_looks/c0bbbs5

As for the needing more of it, we actually have too much.

http://www.prowiki.org/wiki4d/wiki.cgi?EvaluationGuide http://www.prowiki.org/wiki4d/wiki.cgi?HowToGentoo http://www.prowiki.org/wiki4d/wiki.cgi?HowToUbuntu

The trend seems to be, make your own, reference the old, and have everything outdated and complicated. There is a lot of good information, but it has to be presented properly with a concentrated effort (Kind of like the community being stretched across D1/Tango/D2).
July 23, 2009
"Michiel Helvensteijn" <m.helvensteijn.remove@gmail.com> wrote in message news:h47v8p$131i$1@digitalmars.com...
>
> D just doesn't offer enough improvements over C++ to make it worthwhile switching over.
>

Even as a former die-hard C/C++ user, I've never really understood this argument. But, I'm not in the "you have to try it / sum of it's parts" camp either...

Better is just plain better. If you've got two things available, and one is better, it just doesn't make any sense to stick with the worse one if the only reason to do so is inertia. That would be plain laziness.

All of the following *individually* (ie, not just as a lump sum) are things for which I've always considered well worth leaving C/C++ in the history books where it belongs:

- No separate header/implementation files. (IMO, the king of all language anachronisms.)

- Non-null-terminated, slicable strings.

- Strong typing (Unless things have changed since I last looked, I refuse to accept C/C++ as *truly* strong-typed. Hell, most modern dynamic languages have more right to be called strongly-typed than C/C++.)

- True delegates and function literals.

- A sensible foreach instead of that horrid stl iterator mess. (And this opinion of mine was formed long before Andrei's ranges.)

- Metaprogramming that isn't a kludge (I'm looking at both the C preprocessor and the use of C++'s templates for anything beyond mere generics).

- The availability of build tools that make manual dependency-tracking (not to mention those god-awful "*make" programs) obsolete.

- "finally" (Or does C++ have this now too?) which fixes a fatal flaw in old-style exception handling (not to mention scope guards which even make "finally" look primitive, at least where applicable).

If you have any of these available, why *not* use them? Sure, D has it's well-known issues, but they're nothing compared to any of the above problems with C/C++. Hell, the last few times I used C/C++, the *only* reason was because it was the only viable systems language I was aware of.


July 23, 2009
Nick Sabalausky wrote:
> All of the following *individually* (ie, not just as a lump sum) are things for which I've always considered well worth leaving C/C++ in the history books where it belongs:

And if D had just one of these features, plus all of the useful features of C++, then I would be using D instead of C++.  But every time I find that a useful C++ idiom has no equivalent in D (and every time D introduces a new wart on top of the ones it inherits from C++), I am knocked back into C++ land.


-- 
Rainer Deyke - rainerd@eldwood.com
July 23, 2009
Nick Sabalausky wrote:
> Better is just plain better. If you've got two things available, and one is better, it just doesn't make any sense to stick with the worse one if the only reason to do so is inertia. That would be plain laziness.

It does take time and effort to learn a new tool, and that effort needs to be less than the expected gain.

> All of the following *individually* (ie, not just as a lump sum) are things for which I've always considered well worth leaving C/C++ in the history books where it belongs:
> 
> - No separate header/implementation files. (IMO, the king of all language anachronisms.)
> 
> - Non-null-terminated, slicable strings.
> 
> - Strong typing (Unless things have changed since I last looked, I refuse to accept C/C++ as *truly* strong-typed. Hell, most modern dynamic languages have more right to be called strongly-typed than C/C++.)
> 
> - True delegates and function literals.
> 
> - A sensible foreach instead of that horrid stl iterator mess. (And this opinion of mine was formed long before Andrei's ranges.)
> 
> - Metaprogramming that isn't a kludge (I'm looking at both the C preprocessor and the use of C++'s templates for anything beyond mere generics).
> 
> - The availability of build tools that make manual dependency-tracking (not to mention those god-awful "*make" programs) obsolete.
> 
> - "finally" (Or does C++ have this now too?) which fixes a fatal flaw in old-style exception handling (not to mention scope guards which even make "finally" look primitive, at least where applicable).

My experience with C++ people sticking with it is they are so used to the problems they no longer see them. To me it's like the mess in one's house. One doesn't notice it until going on a vacation (i.e. learning a another language), having one's hotel room cleaned every day, then coming home and suddenly seeing how untidy it is <g>.


> If you have any of these available, why *not* use them? Sure, D has it's well-known issues, but they're nothing compared to any of the above problems with C/C++. Hell, the last few times I used C/C++, the *only* reason was because it was the only viable systems language I was aware of.

The bizarre arguments I've seen are along the lines of "I don't want to use D because although it has X and Y which I love, it doesn't have Z and I really need Z", so they use C++ (or Java or C# or Python) which doesn't have X, Y, or Z.
July 23, 2009
Walter Bright wrote:
> My experience with C++ people sticking with it is they are so used to the problems they no longer see them. To me it's like the mess in one's house. One doesn't notice it until going on a vacation (i.e. learning a another language), having one's hotel room cleaned every day, then coming home and suddenly seeing how untidy it is <g>.

I want to throw these words back at you, because my first impression of D was "the bastard child of C++ and Java, with a random assortment of new features thrown in without rhyme or reason".  D is many things, but a simple and elegant language it is not.  (This is not a major problem to me, really.  I can live with messy languages.  I can live with C++. But to think that D is a massive improvement in this area requires a special sort of perspective.)

The reason I have stuck with C++ despite its (massive, obvious) flaws is that it has a couple of really nice and useful features that very few other languages have even attempted to match.  D is the only language I know that even tries, although it still falls short in many areas.


-- 
Rainer Deyke - rainerd@eldwood.com
July 23, 2009
Rainer Deyke wrote:
> I want to throw these words back at you, because my first impression of
> D was "the bastard child of C++ and Java, with a random assortment of
> new features thrown in without rhyme or reason".  D is many things, but
> a simple and elegant language it is not.  (This is not a major problem
> to me, really.  I can live with messy languages.  I can live with C++.
> But to think that D is a massive improvement in this area requires a
> special sort of perspective.)

One measure of messy language semantics is the messiness of the compiler code needed to deal with it. D is a pretty clean language in comparison. <g>

Another way is measuring the change in source code size. I get about a 30% reduction when translating C++ code more or less directly to D.

Yes, I think it is a massive improvement over C++ in simplicity and elegance. But if you try to write C++ code in D, you won't see as much of that as you would after being more used to the D way of doing things. For example, my early C code looked an awful lot like Fortran! It took a while before I used the language in a style that was natural for C. My first years of C++ code also looked a lot like just plain old C (in fact, it arguably still does).


> The reason I have stuck with C++ despite its (massive, obvious) flaws is
> that it has a couple of really nice and useful features that very few
> other languages have even attempted to match.  D is the only language I
> know that even tries, although it still falls short in many areas.

Fair enough. What are those two features?
July 23, 2009
On 7/23/09 1:27 AM, Andrei Alexandrescu wrote:
> Walter Bright wrote:
>> http://www.reddit.com/r/programming/comments/93jh5/ask_proggit_the_d_programming_language_looks/
>
>
> I noticed some people complain about installation difficulties, is there
> progress on the community project for writing installer for the three
> major OSs?
>
> Andrei
>

Yes: http://www.dsource.org/projects/dmd-installer
I'm still waiting for Walter to add the osx installer to the dmd download page.
July 23, 2009
"Rainer Deyke" <rainerd@eldwood.com> wrote in message news:h49153$2pbq$1@digitalmars.com...
> Walter Bright wrote:
>> My experience with C++ people sticking with it is they are so used to the problems they no longer see them. To me it's like the mess in one's house. One doesn't notice it until going on a vacation (i.e. learning a another language), having one's hotel room cleaned every day, then coming home and suddenly seeing how untidy it is <g>.
>
> I want to throw these words back at you, because my first impression of D was "the bastard child of C++ and Java, with a random assortment of new features thrown in without rhyme or reason".  D is many things, but a simple and elegant language it is not.  (This is not a major problem to me, really.  I can live with messy languages.  I can live with C++. But to think that D is a massive improvement in this area requires a special sort of perspective.)
>

D is certainly a bit messy compared to many languages, but I have a very difficult time imagining how it could be considered messy in comparison to C++. C++ has decades of accumulated cruft from trying to cram in usable-but-clumbsy new features around piles of backwards-compatible anachronisms. The mess in D barely begins until a level that's far beyond where C++ takes you before getting messy. And this cannot be a result of me having become more accustomed to D than C++ - I've considered C++ the messiest non-dead language I know of since before I came across D, and even since the last time I was using C++ as my primary language.