iDevGames Forums
C++/carbon - Printable Version

+- iDevGames Forums (http://www.idevgames.com/forums)
+-- Forum: Development Zone (/forum-3.html)
+--- Forum: Programming Languages & Scripting (/forum-8.html)
+--- Thread: C++/carbon (/thread-1810.html)

Pages: 1 2


C++/carbon - jeonghyunhan - Feb 2, 2009 08:43 PM

Hi.
After struggling tremendously with Objc, i decided to program in c++ since i heard it was possible.
My main goal is to program games/apps for the iphone but after finding out that i could code completely in c++ (almost) for my apps, it lead me to something called carbon.
what's carbon?
Also, what are wrapper codes?
Since I need SOME objective-c to apparently "wrap" my c++ code to make them work on iphone.

I've decided to learn OpenGL and c++ on a PC and then transfer to MAC using c++ and openGLES with a bit of ObjC using xCode.


C++/carbon - maximile - Feb 2, 2009 09:11 PM

Carbon is an obsolete Mac application development framework. You can't use it on the iPhone.

If you want to use C++ on the iPhone you can; search the docs for Objective-C++. You still need some wrapper code. Someone here can probably tell you more about it.


C++/carbon - jeonghyunhan - Feb 2, 2009 10:33 PM

ah~
that makes sense.
I wasn't finding anything about carbon on iphone.


C++/carbon - ThemsAllTook - Feb 3, 2009 08:15 AM

When you hear about "wrapper code" in this context, all it means is an isolated part of your codebase which interfaces with the system in some way that the rest of your code doesn't. For example, you could write your entire project in C except for a small Objective-C bootstrapper that does things like handle NIB connections, call the main Cocoa run loop, manage windows and menus, etc., while the rest of your code (in C) does the real work.


C++/carbon - jeonghyunhan - Feb 3, 2009 02:45 PM

I am so happy to hear that!
Although I will be coding in ObjC in the future, i preferred to do some projects in C++.


C++/carbon - RedWolf - Mar 27, 2009 06:59 PM

Egads, Carbon is not obsolete, stop spreading lies. While Apple may prefer developers to use Cocoa/Obj C, they still fully support Carbon development.


C++/carbon - AnotherJake - Mar 27, 2009 09:22 PM

Sorry RedWolf, but you are mistaken. Carbon is indeed obsolete and it is not fully supported by Apple anymore, and they have made it clear that they do not intend to develop Carbon into the future. One example of its obsoleteness is that you cannot use Carbon to build a 64 bit application. These are not "lies". Wink

... and no, you cannot use Carbon on iPhone either.


C++/carbon - RedWolf - Mar 28, 2009 01:24 AM

AnotherJake Wrote:Sorry RedWolf, but you are mistaken. Carbon is indeed obsolete and it is not fully supported by Apple anymore, and they have made it clear that they do not intend to develop Carbon into the future. One example of its obsoleteness is that you cannot use Carbon to build a 64 bit application. These are not "lies". Wink

... and no, you cannot use Carbon on iPhone either.

You can build 64-bit applications in Carbon just that you must use Cocoa for the UI.

http://developer.apple.com/documentation/Carbon/Conceptual/Carbon64BitGuide/Introduction/Introduction.html

In that document under the section "Choosing a Development Path for Your Carbon User Interface" it states:

"Apple plans to support and maintain the 32-bit Carbon Human Interface Toolbox, although Apple will not be adding any significant new features to these APIs."

While I suspect that at some point in the future Apple might finally EOL all support for Carbon, I don't foresee it any time soon. Of course, Apple will taunt Carbon developers by releasing new features and capabilities only for the 64-bit APIs and Cocoa.

Sorry, but I disagree with your definition of "obsolete". MPW is obsolete.


C++/carbon - AnotherJake - Mar 28, 2009 07:46 AM

Quote:If you want to create a 64-bit application for Mac OS X, you need to use Cocoa to implement its user interface.

That quote right there is plenty good enough by most standards, to indicate that Carbon is obsolete. Further, as you quoted yourself, about Carbon:

Quote:Apple will not be adding any significant new features to these APIs.

Yet another statement indicating it is obsolete. The only reason they are continuing to support it at all is so that companies like Adobe who have massive code-bases written in Carbon and are too slow to adopt Cocoa can continue to ship their old products. Make no mistake about it, Apple does not recommend developing new applications in Carbon. These factors add up to one thing, to most of us: Carbon is obsolete.

You can disagree about the definition of "obsolete" all you want, but you are in the distinct minority when you argue that Carbon is still a viable and valid API to develop applications with.


C++/carbon - ThemsAllTook - Mar 28, 2009 08:55 AM

Maybe if we use the word "deprecated", there would be less disagreement.


C++/carbon - AnotherJake - Mar 28, 2009 09:48 AM

Both terms could easily be argued to be relevant to Carbon IMHO.

obsolete |ˌäbsəˈlēt|
adjective
1 no longer produced or used; out of date

deprecate |ˈdepriˌkāt|
verb [ trans. ]
1 express disapproval of

- Carbon cannot be used on iPhone, which is what this thread is about. -- fits the definition of obsolete

- Carbon is no longer "produced" in that Apple will no longer be adding any significant new features to it. -- fits the definition of obsolete

- Carbon is no longer "used" at all in 64 bit UI's. -- fits the definition of obsolete

- Carbon is also not used much, if at all, by most of the developer community for new applications. In a practical sense, if you post questions about Carbon here, there aren't many of us who use Carbon enough anymore to help. -- fits the definition of obsolete

- Apple's official word is that they recommend using Cocoa for all new applications. However, I have not seen them specifically express *disapproval* of Carbon, other than by the action of not carrying Carbon forward into the 64-bit future (at least specifically with the UI), and not adding significant new features to it. So it sure appears to be deprecated when looking at it from a common sense standpoint, but it isn't *officially* deprecated by Apple as far as I've seen.


C++/carbon - Najdorf - Mar 28, 2009 11:08 AM

For some reason deprecated functions are always easy to use and work perfectly, while the non-deprecated version is usually a mess. It's like "no, dude, this is way too easy, be a man and do it the hard way".


C++/carbon - FlamingHairball - Mar 28, 2009 11:10 AM

Najdorf Wrote:For some reason deprecated functions are always easy to use and work perfectly, while the non-deprecated version is usually a mess. It's like "no, dude, this is way too easy, be a man and do it the hard way".

Like what? Huh


C++/carbon - ThemsAllTook - Mar 28, 2009 11:49 AM

Najdorf Wrote:For some reason deprecated functions are always easy to use and work perfectly, while the non-deprecated version is usually a mess.

If this is actually the case with any current Apple API and not just a baseless generalization, you should file a bug report with Apple about it. That's how they get developer feedback to know what needs improvement.


C++/carbon - akb825 - Mar 28, 2009 11:59 AM

RedWolf Wrote:You can build 64-bit applications in Carbon just that you must use Cocoa for the UI.
I believe that you are confusing some of the terms. You can build 64 bit applications in C or C++, just that you must use Cocoa for the UI. Carbon is the C-based library for the UI and other Mac-specific elements, and has nothing to do with the language itself. You can still compile 64 bit C and C++ code, and link to 64 bit C and C++ libraries, including built-in libraries such as the C standard library and OpenGL, but that has nothing to do with Carbon.