On Sunday, 4 February 2018 at 11:14:43 UTC, JN wrote:
On Friday, 2 February 2018 at 15:06:35 UTC, Benny wrote:
You want to produce PDFs? fpdf 2015-Apr-06, a very limited PDF
generation tool last updated 3 years go.
While not as trivial as just using a dub package, D easy
interop with C means you can use C libraries for PDF like
libharu or w/e.
* Are you targeting C developers?
Sure BetterC is a way towards that but again, what do you
offer more then Rust? I see C developers more going for Rust
then D on this point. Or hell even Zig or Jai or whatever 3
letter flavor of the month language.
The problem with flavor of the month languages is that people
switch to them, play with them for a bit and abandon them. To
quote Bjarne Stroustrup: "There are only two kinds of
languages: the ones people complain about and the ones nobody
uses". Languages like D or Java fall into the "get stuff done"
category. They don't try to reinvent programming, they don't
use the latest abstract higher order category theory union type
lambdas, so they are considered boring by the language-hoppers.
That's not a flaw of the language.
Personally I agree that BetterC isn't a good alternative for C
programmers. Sure, you get some benefits of D, but you will
lose many benefits of C and you'll have to constantly fight
"wait, can I use this in BetterC or not" kind of thing.
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.