What are the worst parts of D?

Paulo Pinto via Digitalmars-d digitalmars-d at puremagic.com
Wed Sep 24 02:13:03 PDT 2014


On Wednesday, 24 September 2014 at 06:54:38 UTC, Walter Bright 
wrote:
> On 9/23/2014 11:20 PM, Jacob Carlborg wrote:
>> On 24/09/14 07:37, Walter Bright wrote:
>>> So help out!
>> You always say we should help out instead of complaining.
>
> That's right. Complaining does nothing.
>
>
>> But where are all the users that want C++ support. Let them 
>> implement it instead and lets us focus on
>> actual D users we have now.
>
> I was there at the C++ revolution (and it was a revolution) 
> almost at the beginning. And in fact, a reasonable case could 
> be made that I caused the success of C++ by providing an 
> inexpensive C++ compiler on the most popular (by far) platform 
> at the right moment.
>
> What sold C++ was you could "ease" on into it because it would 
> compile your existing C code.
>
> Later on, other C++ compilers came out. I'd talk to my sales 
> staff at Zortech, asking them how they sold Zortech C++. What 
> was the line that sold the customer. They told me "Zortech C++ 
> is the only C++ compiler that can generate 16 bit Windows code. 
> End of story. Sold!"
>
> I.e. none of the features of ZTC++ mattered, except one killer 
> feature that nobody else had, and that nobody else even had a 
> story for.
>
> Now, consider interfacing with existing C++ code. Which top 10 
> Tiobe languages can?
>
> C: no
> Java: no
> Objective C: sort of 
> http://philjordan.eu/article/strategies-for-using-c++-in-objective-c-projects
> C++: yes
> C#: no
> Basic: no
> PHP: no
> Python: no
> Javascript: no
> Transact-SQL: no
>
> and:
>
> Go: no
> Rust: no
>
> The ones marked "no" have no plan, no story, no nothing.
>
> This means if we have some level of C++ interop, we have a 
> killer feature. If users have a "must have" C++ library, they 
> can hook up to it. Can they use other languages? Nope. They 
> have to wrap it with a C interface, or give up. Wrapping with a 
> C interface tends to fall apart when any C++ templates are 
> involved.
>
> C++ libraries are currently a language "lock in" to C++. There 
> are no options.
>
> I've often heard from people that they'd like to try D, but 
> it's pointless because they are not going to rewrite their C++ 
> libraries.
>
> Case in point: last fall Adam Wilson started on Aurora, a C++ 
> Cinder clone. I had thought he could simply wrap to the C++ 
> library. No way. It was just unworkable, and Cinder was too big 
> to rewrite. Aurora was abandoned. If we could have interfaced 
> to it, things would have been much different.
>
> This story is not unusual.
>
>
> That said, C++ interop is never going to be easy for users. 
> We're just trying to make it possible for a savvy and 
> determined user. And he'll have to be flexible on both the C++ 
> side and the D side.

C#: half-yes, when on Windows and C++ is exposed via COM or WinRT.

In any case I agree with you.

C++ got successful thanks to your work and other vendors that 
were bundling it with their C compilers.

If C++ was a separate product that companies had to buy extra on 
top of their C compilers, it would have failed.

--
Paulo


More information about the Digitalmars-d mailing list