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