Scott: Thanks for replying to a long comment on an old post! I should elaborate a little because I actually don't disagree with you. My entrée into Mac programming was a book on Carbon. I looked at Carbon first because I know C/C++ cold, had no idea what ObjC was, and figured I'd learn Carbon quicker than whatever this Cocoa thing was. Wow, was the Carbon environment hard to wrap my head around. I would even go so far as to say it's less accessible than the equally ancient Win32 C API, or at the very least less well documented. I promptly gave up and learned ObjC, which as you suggested is not difficult.
So my thought wasn't that Carbon as an environment was easier or better than Cocoa-- it's still a creaky, arcane C-based environment. Leave Carbon behind. The point is really more that Cocoa/ObjC are still catching up to the state of the art in modern application development. Until they are fully modern, Carbon has to be around and current for Apple to point to for everyone who writes huge apps and wants reassurance that their existing code and skills play nicely somehow in the Mac worldview.
I think Cocoa is great, and stuff like CoreData, bindings, and whatever's coming up in Leopard are all leapfrogging Cocoa to the forefront of development in general. As it matures, the argument can run like this: "Cocoa/ObjC is a simpler, more powerful, more rapid and easy to learn than *any other modern development framework on any platform*" This is a claim that Cocoa is nearing, but it won't be there till at least next Spring.
Note that I'm not claiming that Cocoa/ObjC isn't faster/easier than Carbon. I'm commenting on the original issue of Apple's perceived lukewarmness about betting the whole platform on Cocoa. Maybe my line of thinking is screwy, but it goes something like this: Cocoa+ObjC > Carbon, but Cocoa+ObjC < C#/Java in a few dealbreaker ways, therefore Cocoa+ObjC cannot be trumpeted as the one true development platform. When Cocoa+ObjC >= C#/Java, then Apple can make that claim, all effort can be put into Cocoa classes for everything, and people new to the platform will be pleasantly shocked by some of the power that's been there all along.
by Ben — Oct 26
So my thought wasn't that Carbon as an environment was easier or better than Cocoa-- it's still a creaky, arcane C-based environment. Leave Carbon behind. The point is really more that Cocoa/ObjC are still catching up to the state of the art in modern application development. Until they are fully modern, Carbon has to be around and current for Apple to point to for everyone who writes huge apps and wants reassurance that their existing code and skills play nicely somehow in the Mac worldview.
I think Cocoa is great, and stuff like CoreData, bindings, and whatever's coming up in Leopard are all leapfrogging Cocoa to the forefront of development in general. As it matures, the argument can run like this: "Cocoa/ObjC is a simpler, more powerful, more rapid and easy to learn than *any other modern development framework on any platform*" This is a claim that Cocoa is nearing, but it won't be there till at least next Spring.
Note that I'm not claiming that Cocoa/ObjC isn't faster/easier than Carbon. I'm commenting on the original issue of Apple's perceived lukewarmness about betting the whole platform on Cocoa. Maybe my line of thinking is screwy, but it goes something like this: Cocoa+ObjC > Carbon, but Cocoa+ObjC < C#/Java in a few dealbreaker ways, therefore Cocoa+ObjC cannot be trumpeted as the one true development platform. When Cocoa+ObjC >= C#/Java, then Apple can make that claim, all effort can be put into Cocoa classes for everything, and people new to the platform will be pleasantly shocked by some of the power that's been there all along.