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