My choice to pick Go over D ( and Rust ), mostly non-technical
Joakim
dlang at joakim.fea.st
Sun Feb 4 07:59:16 UTC 2018
On Sunday, 4 February 2018 at 01:57:26 UTC, Rubn wrote:
> On Saturday, 3 February 2018 at 23:07:30 UTC, Norm wrote:
>> On Saturday, 3 February 2018 at 15:22:37 UTC, Rubn wrote:
>>> On Saturday, 3 February 2018 at 08:18:57 UTC, H. S. Teoh
>>> wrote:
>>>> On Fri, Feb 02, 2018 at 08:16:25PM -0800, Walter Bright via
>>>> Digitalmars-d wrote:
>>>>> On 2/2/2018 7:06 AM, Benny wrote:
>>>>> > Other languages have slogans, they have selling points.
>>>>> >
>>>>> > When i hear Go, you hear uniformal, fast, simple syntax
>>>>> > language.
>>>>> > When i hear Rust, you hear safe, manual memory management.
>>>>> > When i hear D, you hear ... ... ... ...
>>>>>
>>>>> Fast code, fast
>>>>
>>>> Frankly, that slogan makes me cringe. Makes D sound like a
>>>> fast food chain -- cheap code, fast. Would you like
>>>> fa^Wfries with that?
>>>
>>> Yup I agree, it's a horrible slogan. Speed isn't even a
>>> priority in D, if it was so many things would be different.
>>>
>>>> - Make dmd's optimizer better, esp. with loop unrolling on
>>>> par with
>>>> ldc/gdc, or better, so that we don't keep having to defend
>>>> poor dmd
>>>> benchmarks with "use ldc/gdc instead";
>>>
>>> I don't think time should be wasted on making DMD's optimizer
>>> better. It's not an easy job and it'll just pull resources
>>> for something that has no purpose. The compile times with DMD
>>> -O can vary dramatically, it's best just to not use it at
>>> all. The reason I hear as to why DMD even exists instead of
>>> just having 1 compiler like Rust or any other language that
>>> isn't 20+ years old. Is cause DMD's unoptimized compilation
>>> is fast and creates reasonably fast enough code for debugging.
>>
>> I agree, DMD should switch to LLVM backend. But it is unlikely
>> to happen because the core DMD developers are in their comfort
>> zone with DMD backend and worried that switching to LLVM would
>> put them at the mercy of the LLVM community. To be honest
>> though I don't know how much time DMD backend optimizer really
>> takes core devs away from D language development. It would be
>> interesting to see some numbers on this.
>>
>> We use LDC exclusively where I work because DMD codegen just
>> isn't production ready. And the argument that DMD debug builds
>> are so much faster than LDC is bogus. Yes it is faster but
>> nowhere near the point where we would consider swapping
>> compilers between debug and release builds.
>>
>> So that leaves little scripts and the like where DMD could
>> maybe replace Python. But again, LDC isn't *that* slow in
>> debug builds either and could do this just as well.
>>
>> Cheers,
>> Norm
>
> I agree it isn't that much faster, though that's the argument I
> hear. I would prefer to have one compiler that is being worked
> on than having split effort for 3 different compilers when
> larger communities only have 1 compiler. Not that everyone
> working on those compilers will work on one compiler if it does
> happen. It's just a shame the solution was to create more
> compilers.
All the major compilers, dmd, ldc, and gdc, share the same
frontend. Two of the backends, llvm and gcc, are not worked on
by the D compiler devs. The DM backend used by dmd is not worked
on much, mostly bug fixes and some refactoring recently, as
Walter prepares to move it to D:
https://github.com/dlang/dmd/commits/0b8d1fc0d5f6d09478d282202ad50a0c964b75b0?after=0b8d1fc0d5f6d09478d282202ad50a0c964b75b0+104&path%5B%5D=src&path%5B%5D=ddmd&path%5B%5D=backend
There is no evidence that having more compiler backends available
to D devs has "split effort" in any way.
As for the compilers' speed, I thought I'd test that out. I just
built the dmd frontend a handful of times in a single-core
linux/x64 VPS, both with the official dmd 2.078.0 and the latest
ldc 1.7.0. Leaving out all the C++ files, dmd consistently took
3-4 seconds to build the D frontend alone and link the final dmd
binary, whereas ldc took 9-10 seconds for the same work. This is
with no debug or optimization options added, just the default
build by the dmd makefile.
That's a 200% increase in compilation speed when iterating on the
almost 80k lines of code (reported by DScanner) in the dmd
frontend, certainly not insignificant. When the backend is in D
too- the C++ files currently take about 10 seconds to compile-
building dmd itself will be incredibly fast, even more than it is
now.
> With DMD it seems like they are entirely unwilling to let go
> from using DM tools/code. The backend is just one example.
> Optlink is another. DM Make is also another, etc...
Why let it go, when you don't have to use it? Optlink has around
5 commits in the last 3 years, it's not like it's taking up much
time:
https://github.com/DigitalMars/optlink/commits/master
Rather than worrying about DM tools that receive almost no
attention, D would be better off if more people chipped in on the
code they _do_ care about, whether through submitting pull
requests or posting bounties:
https://github.com/dlang/dmd/pulls
https://github.com/dlang/phobos/pulls
https://www.bountysource.com/teams/d
More information about the Digitalmars-d
mailing list