Remix.run Logo
WalterBright 4 days ago

D is the result of lack of interest by the C++ committee, and I had little interest in spending literally years trying to get useful things adopted into C++.

Ironically, over the years, C++ has adopted many features popularized by D.

(like contracts!)

C++ should adopt a few more D features, like https://www.digitalmars.com/articles/C-biggest-mistake.html, compile time expression evaluation (C++ did it wrong), forward references, and modules that work. C++ should also deprecate the preprocessor, a stone-age kludge that has long been obsolete.

motorest 3 days ago | parent [-]

> D is the result of lack of interest by the C++ committee, and I had little interest in spending literally years trying to get useful things adopted into C++.

I think you are leaving out the fact that your comment applies to the post-C++98/pre-C++11 hiatus.

Once C++11 was released, the truth of the matter is that whatever steam D managed to build up, it fizzed out.

I'm also not sure if it's accurate to frame the problem with C++0x as picking up features from D. As I recall, D's selling point was that it was scrambling to provide the features covered by C++0x but users weren't forced to wait for a standard to be published to be able to use them. Once they could, there was no longer any compelling reason to bother with D anymore.

WalterBright 3 days ago | parent [-]

C++ is still trying to catch up with:

- compile time function execution

- modules

- no preprocessor

- memory safe arrays

- preprocessor replacement

- ranges

and so on.

motorest 3 days ago | parent | next [-]

> C++ is still trying to catch up with (...)

C++ modules are indeed a mess, but you are fooling yourself if you believe that the preprocessor of all things is a compelling reason to switch. In fact, I think you unwittingly proved my point on how interest in D fizzed out the moment C++11 was released.

WalterBright 2 days ago | parent [-]

> if you believe that the preprocessor of all things is a compelling reason to switch

The preprocessor is an unhygienic, ugly mess. Just look at the system .h files, which should be a showcase on how to use it correctly. I stand by my assessment of it.

72deluxe 3 days ago | parent | prev [-]

As I am oblivious to D, may I ask if there are suitable GUI toolkits for it, or bindings? I typically use wxWidgets in C++ land.

WalterBright 2 days ago | parent [-]

https://wiki.dlang.org/GUI_Libraries

wxD is the wxWidgets library.