<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Future of Search &#187; Carbon</title>
	<atom:link href="http://futureofsearch.com/category/language-specific/carbon/feed/" rel="self" type="application/rss+xml" />
	<link>http://futureofsearch.com</link>
	<description>Looking Ahead at Search Engines, Computer Platforms, ERP, Programming Languages, and Web Technologies</description>
	<lastBuildDate>Sun, 20 Jun 2010 03:12:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Carbon</title>
		<link>http://futureofsearch.com/2010/06/carbon/</link>
		<comments>http://futureofsearch.com/2010/06/carbon/#comments</comments>
		<pubDate>Sat, 19 Jun 2010 22:25:04 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Carbon]]></category>
		<category><![CDATA[carbon application]]></category>
		<category><![CDATA[carbon applications]]></category>
		<category><![CDATA[design software]]></category>
		<category><![CDATA[future development]]></category>
		<category><![CDATA[header files]]></category>
		<category><![CDATA[left behind]]></category>
		<category><![CDATA[mac design]]></category>
		<category><![CDATA[mac os 8]]></category>
		<category><![CDATA[mac os apis]]></category>
		<category><![CDATA[mac os x]]></category>
		<category><![CDATA[multitasking]]></category>
		<category><![CDATA[os source code]]></category>
		<category><![CDATA[processing time]]></category>
		<category><![CDATA[programming interfaces]]></category>
		<category><![CDATA[respons]]></category>
		<category><![CDATA[responsiveness]]></category>
		<category><![CDATA[unix interface]]></category>
		<category><![CDATA[user interface]]></category>

		<guid isPermaLink="false">http://futureofsearch.com/?p=45</guid>
		<description><![CDATA[Mac OS is focusing on Carbon for its future development, for a solid, modern operating system, and good news also for the developers who want to preserve their investment in many years of development, as almost all-professional Mac design software is Carbon. It looks also like Apple should freeware Carbon API’s and stuff it on [...]]]></description>
			<content:encoded><![CDATA[<div class="tweetmeme_button" style="float: right; margin-left: 10px;">
			<a href="http://api.tweetmeme.com/share?url=http%3A%2F%2Ffutureofsearch.com%2F2010%2F06%2Fcarbon%2F"><br />
				<img src="http://api.tweetmeme.com/imagebutton.gif?url=http%3A%2F%2Ffutureofsearch.com%2F2010%2F06%2Fcarbon%2F&amp;style=normal&amp;b=2" height="61" width="50" /><br />
			</a>
		</div>
<p>Mac OS is focusing on Carbon for its future development, for a solid, modern operating system, and good news also for the developers who want to preserve their investment in many years of development, as almost all-professional Mac design software is Carbon.</p>
<p>It looks also like Apple should freeware Carbon API’s and stuff it on top of Linux and make it the free User Interface STANDARD for all Unicies (Unixxen)! This will be, finally, a UNIX interface.</p>
<p>Carbon is the set of programming interfaces derived from earlier Mac OS APIs that can run on Mac OS X. Some of these APIs have been modified or extended to take advantage of Mac OS X features such as preemptive multitasking and protected memory.</p>
<p>In addition to being able to run on Mac OS X, Carbon applications built for Mac OS X can also run on Mac OS 8 and 9 when the CarbonLib system extension is installed. (As always, you should test for the existence of specific features before using them.)</p>
<p>Carbon includes about 70 percent of the existing Mac OS APIs, covering about 95 percent of the functions used by applications. Because it includes most of the functions you rely on today, converting to Carbon is a straightforward process. Apple provides tools and documentation to help you determine the changes you will need to make in your source code, as well as the header files and libraries necessary to build a Carbon application.</p>
<p>Mac OS X brings important new features and enhancements that developers have asked for, and Carbon allows you to take advantage of them while preserving your investment in Mac OS source code. As Apple moves the Mac OS forward, Carbon ensures you won’t be left behind.</p>
<p>Carbon applications gain these benefits when running under Mac OS X:</p>
<ul>
<li>Greater      stability. Protected addresses spaces help prevent errant applications      from crashing the system or other applications.</li>
<li>Improved      responsiveness. Each application is guaranteed processing time through      preemptive multitasking, resulting in a more responsive user experience.</li>
<li>Dynamic      resource allocation. More efficient use of system resources, including the      elimination of fixed size heaps, means your application can allocate      memory and other shared resources based on actual needs rather than      predetermined values. Each application can access up to 4GB of potential      addressable memory.</li>
<li>Aqua      look and feel. Apple’s newest user interface is available only to      applications that run natively on Mac OS X.</li>
</ul>
<p>The Carbon programming interface consists of the following types of APIs:</p>
<p>Classic Mac OS APIs that can run unchanged on Mac OS X. These comprise the majority of the APIs in your current application.</p>
<p>Classic Mac OS APIs that have been modified to work on Mac OS X. For example, to operate properly in a preemptively scheduled environment, a function may now require an additional parameter to specify the context (or process) to which it belongs.</p>
<p>New APIs that can run on both Mac OS X and Mac OS 8 and 9.</p>
<p>For example, Core Foundation and the Carbon Event Manager provide additional benefits for Carbon applications but are not required for porting. New APIs those are available only on Mac OS X.</p>
<p>Currently, the Classic Mac OS APIs makes up the largest proportion of Carbon APIs. However, as Carbon evolves to take advantage of new features in Mac OS X, new Mac OS X-specific APIs will be added that enhance its capabilities.</p>
<p>Carbon does not support a Classic Mac OS function; it is generally for one of the following reasons:</p>
<ul>
<li>The      function performs actions that are illegal or make no sense in Mac OS X.      For example, functions that are 68K-specific, or functions that allocate      memory in the system heap (Mac OS X has no concept of a system heap).</li>
<li>The      function directly accesses hardware. The Carbon environment was designed      to be fully abstracted from hardware, so such functions are not allowed.</li>
<li>The      function was there for legacy purposes only, and has more modern      replacements (for example, File Manager functions that use working      directories).</li>
</ul>
<p>In addition, certain Classic Mac OS programming practices are no longer allowed:</p>
<ul>
<li>No 68K      code allowed. All Carbon code must be PowerPC-based.</li>
<li>No      trap table access. The trap table and Patch Manager are 68K-specific.</li>
<li>Limited      access to data structure fields. See “Data Structure Access”.</li>
<li>Carbon      lets you create one executable file that can run on both Mac OS X and Mac      OS 8 and 9. You accomplish this by linking your application with a single      stub library, CarbonLibStub, at build time. At runtime your application      links with the appropriate Carbon implementation stored as shared      libraries (sometimes referred to as DLLs).</li>
</ul>
<p>On Mac OS X, your application links dynamically to the Carbon framework, which is a hierarchy of libraries and resources that contains the implementation of Carbon.</p>
<p>On Mac OS 8 and 9, the Carbon implementation is stored as a system extension named CarbonLib. This library contains two types of elements:</p>
<ul>
<li>Implementations      of all functions specific to Carbon.</li>
</ul>
<p>Exports of functions currently available in system software. For example, calls to a Menu Manager function available in both Carbon and Mac OS 8 and 9 will merely call through to the implementation in InterfaceLib.</p>
]]></content:encoded>
			<wfw:commentRss>http://futureofsearch.com/2010/06/carbon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

