On Sunday, 4 December 2022 at 13:03:07 UTC, Hipreme wrote:
On Sunday, 4 December 2022 at 09:53:41 UTC, vushu wrote:
Dear dlang community.
I am unsure about what idiomatic D is.
Some of the Dconf talks tells people just to use the GC, until
you can't afford
it.
If there are documents that describes what idiomatic D is then
I would appreciate it.
So my questions are:
What are your thoughts about using GC as a library writer?
If you wan't to include a library into your project aren't you
more inclined to use a
library which is gc free?
If that is true, then idiomatic D doesn't apply for library
writers.
Since to get most exposure as a D library writer you kinda
need to make it gc free right?
Cheers.
"Until you can't afford", is something really extreme. There is
a bunch of ways to deal with GC memory, what I would say that
can't afford is when you're constantly allocating memory and
because of that, making the program more prone to execute a
collection. I haven't had any problem with the GC yet. If you
think your program is slow, pass it on a profiler and you'll
know the real problem. Don't think too much about that or else
you're gonna lose a heck lot of productivity and end up
creating needlessly unsafe code.
True that makes sense, I also tried using nogc in code, but it
complicates things.
The code is much easier to write when I don't work against the GC.
If you're still gonna be hard headed against the GC, at least
use slices when allocating from malloc, makes your code safe,
readable and less variables to think about. Don't use raw
pointers unnecessarily, and right now, the only reason pointers
have been used in my code base was not for allocated memory,
but for being able to modify a variable from another place when
you need to store a variable reference. If you're only gonna
modify it inside the function, use `ref` instead.
Thanks for the tips :)