D street cred: Just a thought

Ilya Yaroshenko via Digitalmars-d digitalmars-d at puremagic.com
Sat Mar 4 21:45:19 PST 2017


On Saturday, 4 March 2017 at 16:43:21 UTC, Moritz Maxeiner wrote:
> On Saturday, 4 March 2017 at 15:35:13 UTC, Ilya Yaroshenko 
> wrote:
>> [...]
>>>
>>> my 1 cent: we should stop trying to convert C++ users.
>>
>> Please, do no push devs to do not do something. There are two 
>> directions: betterC and DRuntime.
>
> I've tried to follow the "betterC" discussion, but so far a 
> precise specification of what betterC is supposed to be eluded 
> me. What I got was that you seem to be judging druntime to be 
> too heavyweight and want something more lightweight, but I was 
> never clear on what exactly.
>
>> I believe in betterC and  betterC target is C/C++ industry. 
>> Old D users are happy with DRuntime and growing Phobos.
>
> Please don't throw all "old D users" in the same category, 
> generalizations like that only alienate. On a related note: 
> What I believe in is that D's community can't take another rift 
> like Phobos/Tango, D1/D2, so I've been very skeptical regarding 
> the value of betterC.

I don't care about existing D users. Sorry about that. In the 
same time I do not see any problem with betterC for existing D 
users. Any betterC library can be used with Druntime like either 
a common C library or generic D library.

> This doesn't mean I'm happy with druntime and phobos, though.

Yep. Additions to std.range like orElse will make idiomatic 
Phobos code slower then C++ and Scala. It is not clear when you 
do a benchmark for single implementation, but idiomatic 
combinations of D Ranges will became slow.

>> This ways are not compatible at least for now.
>
> I must have missed that: Are you saying that someone using 
> druntime in his application will not be able to use "betterC" 
> libraries?

No, betterC libraries can be used by D apps like a common C libs.

>> Mir libraries are going to be betterC, the next great betterC 
>> goal is DCV.
>>
>> Ilya
>
> Would it be possible for you to provide a precise specification 
> of what exactly betterC is going to be? Or, if that already 
> exists, and I have missed it, point me to it?

betterC is wide concept. Examples:

A generic betterC library can be used to write precompiled 
betterC libraries. Example:
https://github.com/libmir/mir-algorithm

A precompiled betterC library in binary form is a library with 
extern(C) API that can be used without DRuntime by other 
libraries, apps, and languages (!!!). Examples:

https://github.com/tamediadigital/hll-d
https://github.com/libmir/mir-cpuid
https://github.com/libmir/mir-glas

Why without DRuntime? I had explained this multiple times.
1. DRuntime has not stable ABI between versions
2. DRuntime has not stable ABI between compilers
3. DRuntime depends on GC, D GC is slow, and because D design GC 
will always will be slow.

1,2,3 are important for real world business. Most of existing D 
users do not need 1-3 (otherwise they would switch to C). So, I 
do not expect any understanding from the community about my 
opinion :P


More information about the Digitalmars-d mailing list