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