My choice to pick Go over D ( and Rust ), mostly non-technical

John Gabriele jgabriele at fastmail.fm
Tue Feb 6 16:21:26 UTC 2018


On Monday, 5 February 2018 at 22:56:47 UTC, Jonathan M Davis 
wrote:
> On Monday, February 05, 2018 18:54:32 John Gabriele via 
> Digitalmars-d wrote:
>> What is the specific purpose of -betterC? I see from 
>> <https://dlang.org/spec/betterc.html> that it's (A) useful 
>> when targeting constrained environments, and (B) for easier 
>> embedding of D libraries into larger projects. But I think 
>> I've read elsewhere in this forum that it was specifically 
>> useful for the DMD implementation itself.
>>
>> Is betterC intended to be used for standalone "D -betterC" 
>> programs where C might've otherwise been used? My impression 
>> of D so far is that it can indeed already be used as a better 
>> C by avoiding the GC yourself, or invoking it yourself when 
>> appropriate.
>>
>> It may be useful if that betterc.html page gave a rationale 
>> for it; to avoid any confusion on what its intended purpose is.
>
> Based on Walter's comments, I get the impression that he thinks 
> that the primary benefit of -betterC is to make it easier to 
> port a C program to D, because then you can port it piece by 
> piece rather than having to do it all at once. After that, it's 
> D, and you can ditch -betterC and start taking advantage of the 
> full feature set of D. Certainly, that's all that I would ever 
> consider using -betterC for. I have zero interest in giving up 
> on the features that require druntime. If I were going to 
> consider that, I'd just ditch D for C++. At least then, I'd get 
> a fully featured language even if it isn't as nice as D.

Thanks, Jonathan! Sounds like a great tool to have available to 
assist migrating to D.

> However, there are some folks who like the idea of using 
> -betterC as their primary or only way to use D, because they 
> don't want the runtime for whatever reason. Some of that comes 
> from the fact that it's easier to link against a D library from 
> a C/C++ program when the D library doesn't require the runtime, 
> but I don't think that that's the only reason.

Ah, I see. Around this notion then is where I'm seeing some folks 
here concerned about D "choosing a direction". If your impression 
(your first paragraph) is correct, then D has actually not 
changed direction (wrt betterC) in the first place.

Incidentally, this is one of those situations that reminds me how 
important names are, for example:

   * "D" = "the new and improved next incarnation of C/C++"
   * "-betterC" = "use this as a better (and in place of) C"

Naming is hard!



More information about the Digitalmars-d mailing list