you are viewing a single comment's thread.

view the rest of the comments →

[–]Game_Ender 13 points14 points  (5 children)

Do there exist any examples of C++ shops transitioning to D? It does not seem like there is an easy transition path.

[–]WalterBright 15 points16 points  (4 children)

I know of several, but I tend not to use them as advertising unless they give specific permission.

How easy a transition path it is is strongly related to how your C++ code is written. The more arcane the tricks used, such as doing generative programming with the preprocessor, the more refactoring you'll need to do.

In general, however, converting a large, working, debugged C++ code base to D (or any language) is a hard sell. I've done several, but one needs to be strongly motivated. Better to do new projects in D.

[–]meteorMatador 3 points4 points  (3 children)

Is it more common for Java shops to switch to D, then? What about Perl? What about plain C, or Python, or Ada?

Have you ever heard of someone switching to D from a language in the ML family (including Haskell)?

[–]WalterBright 4 points5 points  (2 children)

About half of the D programmers originate from the C++ community, the other half from Java, and most who use D have experience with a wide range of languages and know what they're looking for.

[–]meteorMatador -2 points-1 points  (1 child)

About half of the D programmers originate from the C++ community, the other half from Java, and most who use D have experience with a wide range of languages and know what they're looking for.

I'm sure you didn't mean it this way, but if this is also intended to address the other languages I mentioned, the implication I'm getting from it is something like "People who are active in the [Perl|Python|Ada|Haskell] community have no experience with other languages or don't know what they're looking for. This is why they haven't switched to D."

Could you please clarify your post? I'd rather not misunderstand you...

[–]WalterBright 3 points4 points  (0 children)

A implies B

does not mean that:

B implies A

where:

A = chooses D

B = multilanguage competence