[futurebasic] FutureBasic and Carbon

Message: < previous - next > : Reply : Subscribe : Cleanse
Home   : February 2010 : Group Archive : Group : All Groups

From: Robert Purves <listrp@...>
Date: Tue, 16 Feb 2010 12:09:00 +1300
Until June 2007 Carbon and Cocoa were equally supported by Apple. Then it was announced that Cocoa, but not Carbon, would be enhanced to allow 64-bit compilation. 

Since then Apple has
- removed Carbon templates from Xcode.
- segregated Xcode's Carbon documentation in a "Mac OS X Legacy Library".
- moved online Carbon documentation to a hard-to-find location.
- changed the Carbon C header files to indicate what is, and what is not, available in 64-bit mode. 

All UI features (menus, windows, controls, QuickDraw, event handling...) of Carbon are gone in 64-bits. Some parts are preserved, such as the FSRef and CFURLRef file API, the Resource Manager, and CoreFoundation. 

It is widely believed that Carbon will eventually be discontinued, but there is no official statement to that effect, nor is there information how or when this might happen. The best unofficial statement seems to be:
<http://lists.apple.com/archives/Carbon-dev/2009/Jun/msg00078.html>

FB is Carbon-based and therefore 32-bit only, and so are all apps built with FB. If Carbon is discontinued in some future version of OS X, our apps will become unusable. The FBtoC team has no plans for a Cocoa-based FB, some reasons being
- we would have to invent a new language "Objective-FutureBasic".
- we would have to rewrite FBtoC to accept the new language and emit Objective-C.
- you would have to learn the new language and rewrite your apps.

FB users who intend to outlive Carbon should therefore learn to program in Cocoa. This interesting challenge has four parts.
[1] using Xcode and Interface Builder
[2] learning the C language
[3] learning Objective-C additions
[4] learning the Cocoa framework


Some relevant links are given below.

Robert P.

64-bit:
<http://en.wikipedia.org/wiki/64-bit>

Carbon:
<http://en.wikipedia.org/wiki/Carbon_(API)>
<http://www.carbondev.com/site/?page=64-bit+Carbon>
<http://developer.apple.com/mac/library/documentation/Carbon/Conceptual/Carbon64BitGuide/Introduction/Introduction.html>

Cocoa:
<http://cocoadevcentral.com/d/learn_cocoa/>
<http://developer.apple.com/legacy/mac/library/referencelibrary/GettingStarted/GS_Cocoa/index.html>

FBCocoa list:
<http://associate.com/groups/fbcocoa/>