5 ms·
The reference counting != GC thing gets repeated all the time on HN, so I'm glad you called this out. For the record, what these people call "GC" is better call
by chrismonsanto 10y ago
The reference counting != GC thing gets repeated all the time on HN, so I'm glad you called this out. For the record, what these people call "GC" is better called tracing garbage collection.
- EdiX 10y agoI think the "reference counting != GC" meme originates in Apple's marketing, specifically they needed a simple way to market their reference counting (which they call ARC to distinguish it from manual reference counting previously used by ObjC) as different and superior to Android garbage collection.
- pjmlp 10y agoAnd also to hide the fact that their Objective-C GC attempt was a failure. It is true that their ARC semantics is a better solution to Objective-C's memory management semantics, but they needed to do the typical marketing stunt of selling a failure as something positive.
- jasode 10y agoIt's not just HN. It's also differentiated that way in the official Apple documentation. I previously commented on it: https://news.ycombinator.com/item?id=7866732 https://news.ycombinator.com/item?id=7866732 The "rc != gc" ship has already sailed. I realize that it can be annoying to language purists but the way to make peace with it is to separate discussions into 2 types of contexts: 1) formal computer science discussion (such as Lambda The Ultimate) --> "rc == gc" 2) real-world discussions in Apple documentation and various other forums --> "rc != gc" I'm not prescribing that you must like the situation but merely pointing out that's how it is these days. Repeatedly making corrections in the hopes that #1 overtakes #2 is not going to sway common usage. Even rigid and exacting computer scientists use words and concepts[1] that mathematicians frown on. In the end, the common usage (that often strays from original precision) prevails. [1]e.g. "integer" as -32k to +32k instead of -inf to +inf, and "=" as "assignment" instead of "equality"
- chrismonsanto 10y agoAlternatively, I'll continue to speak up for the established terminology in the GC literature, and continue to recommend that those interested in this subject read sources like Jones' GC Handbook rather than the "official" Apple documentation. People who are actively hostile against using the established terminology are unlikely to have the expertise necessary to contribute productively to these kinds of discussions anyway.
- jasode 10y ago>read sources like Jones' GC Handbook rather than the "official" Apple documentation. I want to emphasize again that it's a language communication issue and not a technical issue and therefore, reading Jones' GC Handbook will not help nor solve the problem. One can thoroughly study that book, and 100% agree with the terminology that "rc is subset of gc", and in the end, still chooses to use the informal "rc != gc" -- because everyone else has been using it that way for a long time. Also, by mentioning Apple, I may have given the impression that it's specifically "Apple" vs the "correct computer science" proponents. Or, I'm saying Apple is some sort of authority or blessing on loose terminology. No, the informal "rc vs gc" nomenclature has been used for over 30 years which is long before Apple did the GC/ARC flip flop in 2011. It is also before the Jones GC book published in 1996. Examples: 1989: https://groups.google.com/forum/#!search/reference$20counting$20vs$20gc/comp.lang.c++/4axzDwbMxu4/3fq5DuDxC5kJ https://groups.google.com/forum/#!search/reference$20countin... 1994: https://groups.google.com/forum/#!msg/comp.object/fqPmh_1wmlI/wmA8tkbfKl0J https://groups.google.com/forum/#!msg/comp.object/fqPmh_1wml... 2002: https://books.google.com/books?id=mGlI6kt6qzYC&pg=PA76&lpg=PA76&dq=%22reference+counting+vs+garbage+collection%22&source=bl&ots=pyk1aYQiDa&sig=kImApacb7Ag66xszMgxQnMmuJ3A&hl=en&sa=X&ved=0ahUKEwith5zIo_PMAhWEy4MKHc8fAukQ6AEIMzAE#v=onepage&q=%22reference%20counting%20vs%20garbage%20collection%22&f=false https://books.google.com/books?id=mGlI6kt6qzYC&pg=PA76&lpg=P... In other words, the "rc != gc" ship sailed a long time before Apple's documentation and the cited links show how pervasive its usage was across several programming languages. Ideally, "RC" would have been "RCGC" Ref Counting Garbage Collector, and "GC" would have been "TGC" Tracing Garbage Collector so all subsequent conversations were "RCGC vs TGC" but that's not how history played out. Studying Jones' GC Handbook does not reverse 30+ years of how people informally use terminology.