C++ or D?

RSY rsy_881 at gmail.com
Thu Dec 31 07:17:45 UTC 2020


On Wednesday, 30 December 2020 at 21:03:36 UTC, Paulo Pinto wrote:
> On Thursday, 24 December 2020 at 08:36:54 UTC, RSY wrote:
>> On Wednesday, 23 December 2020 at 19:00:14 UTC, evilrat wrote:
>>> On Wednesday, 23 December 2020 at 18:03:56 UTC, frame wrote:
>>>>
>>>> It's not the problem mentioned but I had to struggle with 
>>>> DLLs and D's Variant-type. The problem is that Variant uses 
>>>> TypeInfo which does not pass DLL boundaries correctly so 
>>>> that int != int in runtime even it's in fact a simple int.
>>>>
>>>> If you need to exchange unknown data between a DLL and your 
>>>> application you need to get a workaround and cannot use that 
>>>> elsewhere settled nice feature. But it's a Windows specific 
>>>> issue - it works as expected on other systems.
>>>
>>> Which is basically same as in C++, despite the fact it does 
>>> have real working SO/DLL runtime's many large projects have 
>>> their own RTTI implementation. LLVM has its own RTTI because 
>>> standard type info is "inefficient", Unreal Engine has its 
>>> own, IIRC Qt too has its own, etc...
>>>
>>> Same thing with D Variant, some people say it is 
>>> "inefficient"... so we ended up having multiple libraries.
>>>
>>> Not saying anything about how good or bad all this, just the 
>>> facts.
>>
>> C++ you need to write duplicate code (.h and .cpp)
>>
>> C++ you need to care about header include order
>>
>> C++ you need to forward declare everything you gonna use if it 
>> is not included before
>>
>> C++ you need to waste time waiting for compile
>>
>
> Fixed with C++20 modules.
>
> I am already playing with the experimental support on VC++.
>
>> C++ you need to fight to get proper reflection
>>
>
> Coming in C++23, and partially available already with a mix of 
> type traits and constexpr.
>
>
> I am all good for D vs C++, but one needs to update their 
> knowledge specially when the audience is up to date with latest 
> ISO C++'s capabilities.

It's like the story with the GC

You want everyone to like D because it has a GC despite it being 
not updated in ages, and proved to not scale well

You do the same with modules and reflections now, D is clearly 
better but for some reasons you don't want people to believe 
that, worse you want people to see them as inferior to the poor 
C++ one, because you clearly didn't mention any of that poor 1 
phase compilation model

What is your goal here? you for sure don't want D to take off


More information about the Digitalmars-d-learn mailing list