July 10, 2016
On Saturday, 9 July 2016 at 11:27:13 UTC, ketmar wrote:
> and with refcounting i have to *explicitly* mark all the code as "no refcounting here", or accept refcounting overhead for nothing.

That would be automatic reference counting ;-)... Reference counting is ok for shared ownership, but in most cases overkill. Garbage collection is also useful in some settings, e.g. in some types of graph manipulation. Where things go wrong for D is to use primitive global garbage collection. It would have worked out ok if it provided only primitive local garbage collection.

So what D needs is:

1. local garbage collection (for a single fiber or a facade to a graph).

2. solid global ownership management (for both resources and memory).

Most newbies can then happily write single-threaded code as usual. More advanced programmers need to deal with shared ownership. Which they might have to do anyway, since garbage collection does not handle resources.

July 10, 2016
On Saturday, 9 July 2016 at 09:15:19 UTC, Chris wrote:
> Yes, of course the "write-once-run-everywhere" fairy tale helped to spread Java, but while it was gaining traction GC became a feature everybody wanted. Sorry, but there is not a single book or introduction to Java that doesn't go on about how great GC is.

Just like there is no C++ book that does not rant about how great RAII is... What do you expect from a language evangelic? The first Java implementation Hotspot inherited its technology from StrongTalk, a Smalltalk successor. It was not a Java phenomenon, and FWIW both Lisp, Simula and Algol68 were garbage collected.

What was "new" with Java was compile-once-run-everywhere. Although, that wasn't new either, but it was at least marketable as new.

> Java was the main catalyst for GC - or at least for people demanding it. Practically everybody who had gone through IT courses, college etc. with Java (and there were loads) wanted GC. It was a given for many people.

Well, yes, of course Java being used in universities created a demand for Java and similar languages. But GC languages were extensively used in universities before Java.

> Yes, it didn't last long. But the fact that they bothered to introduce it, shows you how big GC was/is.

No, it shows how demanding manual reference counting was in Objective-C on regular programmers. GC is the first go to solution for easy memory management, and has been so since the 60s. Most high level languages use garbage collection.

July 10, 2016
On Sunday, 10 July 2016 at 02:08:36 UTC, Ola Fosheim Grøstad wrote:
> No, manual reference counting is not particularly slow. Automatic reference counting is also not considered to be slower than GC.

i keep insisting that refcounting IS GC. please, stop call it something else.
July 10, 2016
On Sunday, 10 July 2016 at 02:28:58 UTC, Ola Fosheim Grøstad wrote:
> So what D needs is:
>
> 1. local garbage collection (for a single fiber or a facade to a graph).
>
> 2. solid global ownership management (for both resources and memory).

ketmar doesn't need that. even for his real-time audio engine and videogame engines. not a high priority then, and adds ALOT of complexity (thing about complexity of passing values out of thread/fiber). no, thanks.
July 10, 2016
On Sunday, 10 July 2016 at 02:02:23 UTC, Ola Fosheim Grøstad wrote:
> Reference counting is a technique for collecting garbage, but the term «garbage collection» is typically used for techniques that catch cycles by tracing down chains of pointers:

i don't care about hipsters redefining the terms for arbitrary reasons. refcounting IS GC.
July 10, 2016
On Sunday, 10 July 2016 at 06:19:28 UTC, ketmar wrote:
> On Sunday, 10 July 2016 at 02:02:23 UTC, Ola Fosheim Grøstad wrote:
>> Reference counting is a technique for collecting garbage, but the term «garbage collection» is typically used for techniques that catch cycles by tracing down chains of pointers:
>
> i don't care about hipsters redefining the terms for arbitrary reasons. refcounting IS GC.

Nothing to do with hipsters. The common interpretation for «garbage collection» in informal context has always been a tracing collector. I've never heard anything else in any informal CS context.

July 10, 2016
On Sunday, 10 July 2016 at 09:04:25 UTC, Ola Fosheim Grøstad wrote:
> Nothing to do with hipsters. The common interpretation for «garbage collection» in informal context has always been a tracing collector. I've never heard anything else in any informal CS context.

i always heard that "garbage collection" is garbage collection, and it is irrelevant to algorithms used.
July 10, 2016
On Sunday, 10 July 2016 at 09:05:47 UTC, ketmar wrote:
> On Sunday, 10 July 2016 at 09:04:25 UTC, Ola Fosheim Grøstad wrote:
>> Nothing to do with hipsters. The common interpretation for «garbage collection» in informal context has always been a tracing collector. I've never heard anything else in any informal CS context.
>
> i always heard that "garbage collection" is garbage collection, and it is irrelevant to algorithms used.

I've never been to a lecture/presentation where "garbage collection" did not mean "tracing garbage collection".  Attribute this to culture if you don't like it...

July 10, 2016
On Sunday, 10 July 2016 at 16:58:49 UTC, Ola Fosheim Grøstad wrote:
> I've never been to a lecture/presentation where "garbage collection" did not mean "tracing garbage collection".
then you probably watched some... wrong lections. ;-)
July 10, 2016
On Sunday, 10 July 2016 at 17:03:26 UTC, ketmar wrote:
> On Sunday, 10 July 2016 at 16:58:49 UTC, Ola Fosheim Grøstad wrote:
>> I've never been to a lecture/presentation where "garbage collection" did not mean "tracing garbage collection".
> then you probably watched some... wrong lections. ;-)

Nah, they were experienced language designers and researchers.