back

by mpweiher·13d ago·view on hn ↗
Yes, they don't ever openly admit mistakes.

But they do quietly drop or fix them, covertly acknowledging they were mistakes. Often with this messaging: "we have this new shiny thing that is even better than the old shiny thing (that was really a turd)".

Remember "garbage collection"? Or "modern syntax"? Or CocoaJava?

And with hardware they had their "come to Jesus" moment a while ago. And then hit it out of the ballpark with Apple Silicon.

The one for software is still upcoming.

2 comments
SwiftUI is too big to silently drop. It is too difficult to silently fix.
So the only way out is something new again.
Happy to rename my stuff "Objective-Swift" :-)
CocoaJava was when they were not certain devs educated in C++ and Object Pascal would ever accept Objective-C.

Garbage collection is still there, regardless of the marketing message without fundamentals from CS theory of automatic memory management algorithms, because they need to blame something else other than themselves, Apple does no wrong.

> CocoaJava was when they were not certain devs educated in C++ and Object Pascal would ever accept Objective-C.

They actually went all in on CocoaJava. I was there for the WWDC.

> Garbage collection is still there

"Garbage collection is deprecated in OS X 10.8. Use ARC instead—see Transitioning to ARC Release Notes."

https://developer.apple.com/documentation/foundation/nsgarba...

> They actually went all in on CocoaJava. I was there for the WWDC.

Of course they did, until they saw the Objective-C adoption numbers were high enough.

> "Garbage collection is deprecated in OS X 10.8. Use ARC instead—see Transitioning to ARC Release Notes."

ARC is garbage collection, of course mighty Apple won't acknowledge that, because it doesn't suit their marketing, and they are to sell ARC after the Objective-C 2.0 conservative GC failure, given the underlying C semantics.

So they need to sell ARC as the great saviour, so much better than "GC".

https://gchandbook.org/contents.html

https://web.eecs.umich.edu/~weimerw/2008-415/reading/bacon-g...

> until they saw the Objective-C adoption numbers were high enough.

Nope. Until they saw that (a) CocoaJava was a complete dud, not just technically, but also in terms of developers buy in and (b) Cocoa/ObjC was accepted well by a large part of the dev community.

> > "Garbage collection is deprecated in OS X 10.8. Use ARC

> ARC is garbage collection,

In terms of the Apple ecosystem, "Garbage Collection" refers to the failed attempt to introduce a tracing garbage collector. Apple/OSX always had reference counting (introduced by NeXT pre-acquisition with Foundation in EOF and later in OPENSTEP 4.0), which technically is also a form of garbage collection, but again in this case the terms are distinct.

> So they need to sell ARC as the great saviour, so much better than "GC".

Again, in the Apple ecosystem, "Garbage Collection" always referred to the tracing collector, even before they had to abandon it due to it not working.

And ARC is markedly better than their GC, but only arguable and at best marginally better than the reference counting they had pre-GC, and in some significant sense worse. Which is why I generally don't use ARC. For my style of programming the benefits are minuscule and the drawbacks real.

Ah, the famous reality distortion field where industry terms get the meaning that suits Apple's marketing team and developer advocates.
No. Just that within the Apple ecosystem, the terms were used in a specific way.

Apple GC is a form of GC. There is no redefinition going on. It is correct.

However, it is ridiculous to say "we will replace garbage collection with garbage collection" and it is too cumbersome to say "we will replace reference counting garbage collection with tracing garbage collection".

Both "garbage collection" for the tracing garbage collection mechanism and "reference counting" for the reference-counting garbage collection mechanism are correct uses of terminology.

Using these shorthands instead of either the cumbersome complete terms or the confusing other shorthand is perfectly fine.

Although admittedly some Apple zealots started insisting that the Apple shorthands were the correct terminology. Or that programs that were broken by the broken GC had always been broken. Or that what Apple calls "MVC" is actually the correct definition of MVC when it is not.

https://blog.metaobject.com/2015/04/model-widget-controller-...

https://blog.metaobject.com/2017/03/concept-shadowing-and-ca...