Oziphantom wrote:
2004~5. All the mac fanboys where I worked started buying Ruby books, when I asked why I, "Apple have said its a really good language" was the gist of what they said
That's when I started learning Ruby too, but because I heard nice things from other devs. Only one of them was a Mac guy. (shrugs)
Oziphantom wrote:
I think it was for making those widget things, does OSX even still allow those?
Dashboard Widgets? Yeah, they are still around, but they are basically HTML5 before it had a name. (It's the origin of the canvas element, and why it's API looks exactly like a simpler CoreGraphics API) I've never seen anyone use them on purpose though. lol
Oziphantom wrote:
Well Next is for all intents Apple, in that Apple is now basically just Next. So to be Pedantic Jobs Added it then
So to be clear, we are talking about history that is almost as old as the NES. Good to know.

Oziphantom wrote:
For ARC to work, it needs to know what calls what and when and how. And the "great thing about OBJ-C is that its a Dynamic Language" and "We all know Dynamic Languages are better"..so you have a system that needs to Statically analyze a Dynamic Language...
Not sure where you are going with this. Dynamic lookup or not, every method call is explicit and is turned into a function call (which you seem to know already). It doesn't need to know the full call graph or it would require whole program optimization. It follows the
same simple rules, and those don't require the programmer to memorize the call graph either.
Oziphantom wrote:
And it makes it harder to throw Obj-C out the window and mix in c and c++, as soon as you want to pass an Obj-C pointer through things, you have to start signing wavers
??? C code doesn't have to be aware at all if ARC will or won't be used in another file. You call the exact same (public, documented) functions to retain/release objects. The even added the "bridging" functions that let you pass ownership between C and ARC within the same module. This was one of the biggest advantages to ARC vs the conservative GC is that it required no ABI changes. Existing, compiled, library code could be used without changes.
Where is the joke about "signing waivers" coming from? Everything you described is a public and documented API. I mean it's fine to dislike Apple, but there are plenty of real things they've done to be upset about without needing hyperbole. :p
Anyway, I think ARC is a good way to do GC on a memory or power constrained device. It doesn't waste memory like a GC does, but does spend more CPU time managing a lot of atomic counters. On a desktop machine where memory is plentiful and cheap, modern GC methods have been well proven to have pretty low overhead.