You don't like GC? Do you?

Atila Neves atila.neves at gmail.com
Fri Oct 12 21:34:35 UTC 2018


On Friday, 12 October 2018 at 16:26:49 UTC, Stanislav Blinov 
wrote:
> On Thursday, 11 October 2018 at 21:22:19 UTC, aberba wrote:
>> "It takes care of itself
>> -------------------------------
>> When writing a throwaway script...
>
> ...there's absolutely no need for a GC.

True. There's also absolutely no need for computer languages 
either, machine code is sufficient.

> In fact, the GC runtime will only detract from performance.

Demonstrably untrue. It puzzles me why this myth persists. There 
are trade-offs, and one should pick whatever is best for the 
situation at hand.

>> What this means is that whenever I have disregarded a block of 
>> information, say removed an index from an array, then that 
>> memory is automatically cleared and freed back up on the next 
>> sweep. While the process of collection and actually checking
>
> Which is just as easily achieved with just one additional line 
> of code: free the memory.

*Simply* achieved, not *easily*. Decades of bugs has shown 
emphatically that it's not easy.

>> Don't be a computer. Do more with GC.
>
> Writing a throwaway script there's nothing stopping you from 
> using mmap or VirtualAlloc.

There is: writing less code to achieve the same result.

> The "power" of GC is in the language support for non-trivial 
> types, such as strings and associative arrays. Plain old arrays 
> don't benefit from it in the slightest.

For me, the power of tracing GC is that I don't need to think 
about ownership, lifetimes, or manual memory management. I also 
don't have to please the borrow checker gods.

Yes, there are other resources to manage. RAII nearly always 
manages that, I don't need to think about that either.




More information about the Digitalmars-d mailing list