TweetFollow Us on Twitter

Jul 00 Online

Volume Number: 16 (2000)
Issue Number: 7
Column Tag: MacTech Online

Preparing for Mac OS X

By Jeff Clites <>

Unless you've been living under a rock, you know by now that Mac OS X is just around the corner. At this point, every Mac developer should be preparing himself for this brand new operating system. Make no mistake — Apple has gone to great pains to make this transition as smooth as possible, and to ensure the widest possible range of backward compatibility, but Mac OS X is a whole new world. Developers should be extremely excited; I know I am. But it is, naturally, a bit unnerving to be faced with all this change — to go from being an expert to a beginner. The bright side (or, I should say, one of the many) is that learning new stuff is the fun part, and after you've gotten over the shock you'll find out that your job just became a whole lot easier, that it's a whole lot more fun, and that you're a whole lot more productive. The Carbon API is, refreshingly, more than just a compatibility shim on the Classic API — it's a real step forward. If you're a long-time Mac developer, you'll be glad to see that your tools are continuing to evolve, and not just change. Although you'll be able to continue developing in Carbon for quite a while, and will be able to take advantage of many of the operating system's new features by doing so, I would encourage you to take a serious look at the Cocoa API. It is completely different, but if you give it a fair chance, you're going to like it, and you'd be crazy not to use it for your new development. If you don't believe me, than just try to find anyone who was ever an OpenStep developer and didn't love it. You won't be able to. At the time of writing, I've just returned from this year's WWDC, and during most of the WebObjects sessions I was struck with just how many people, in the midst of voicing a complaint, took the time to point out just how much of a joy working with this technology is, and to thank the development team. Along with an operating system and a CEO, we've acquired a strong community from NeXT, and as we move forward you'll want to be a part of it, and to avail yourself of their expertise.

So what should you do to get "ready for X"? Step 1 is to learn either Objective C or Java. C and C++ programmers may be a bit irked that they need to learn a new language, but it will be less of a shock that you think, and well worth it. (And again, isn't learning a new tool supposed to be the fun part?) So which one should you use? That's easy — either. In fact, learn both, and see which you like best. As Mac developers we've always had a choice of languages: C, C++, Pascal, the BASICs, Perl — the list goes on. We had this range of choice because the Mac API was procedural, consisting of structures and functions, and so it was easy to access from just about any language — you just needed the right headers or wrappers. The Cocoa API is a framework, in the true sense of the word, and frameworks are inherently language-specific. So it's rather a miracle that we can use Cocoa from both Objective C and Java; they are just similar enough under the hood that Apple was able to arranged it so that we can use either. Cherish this choice—it's quite likely the only one we'll ever have. So learn both languages, and if you find that you love one of them and hate the other, you should still encourage Apple to support both, because choice is a Good Thing, and we'll all benefit from it in the long run.

As a first step, I would encourage you to read Apple's Object-Oriented Programming and the Objective-C Language, even if you don't plan to use Objective C, and especially if you are new to object-oriented programming. (You can find it online along with the rest of their developer documentation.) It's relatively short, and the introductory material is language neutral and gives an excellent explanation of what "OOP" is all about. If you're a C or C++ programmer, you'll probably find that you can pick up Objective C in a couple of hours, assuming you are already comfortable with object-oriented concepts. It's just a small syntax addition on top of C, and much less of a mouthful than C++. It does look a little funny at first, but after you get used to it, it becomes quite easy to read and to work with. (In case you're wondering, its basic syntax is "[object message]", or "[object message:parameter]", so you'll end up with usage which looks like "[dog fetch:stick]". This syntax is derived from the Smalltalk language, which is the "other" famous export of Xerox PARC.)

Object-Oriented Programming and the Objective-C Language

Moving beyond the language issue, Apple has provided a large amount of documentation on their new operating system, and exactly where you should start will, of course, depend on what type of programming you actually do. But there is one general technology which you should be sure to familiarize yourself with: Unicode .

Unicode is not actually new to the Macintosh platform and has been supported long before Mac OS X, but it is used pervasively there and may be new to many Mac programmers. In case you haven't encountered it before, Unicode is an attempt to create one system which can encode all of the characters of all of the languages of the world. This is an ambitious goal, but it's necessary if first-class information processing is going to make it outside of the Western world. Without Unicode, different languages are forced to use different encodings, so that a byte which represents an "a" in one encoding might represent a Thai letter in another, and you have to have prior knowledge of the encoding in use if you want to make sense of the information. This is problematic, and only gets worse if you need to mix characters from disparate languages within one document. (On a very mundane scale, it also solves the problem that even if you think you are only working in ASCII, the Mac OS and Windows differ in their encoding of upper-ASCII characters, which can cause your curly quotes to turn into accented letters.) With Unicode, you will be able to faithfully transmit, process, and even display information in nearly all languages, even if you can't read it yourself. Cocoa uses Unicode internally for all if its string handling, and the ATSUI component of Carbon and Classic allow you to manipulate and display it there as well. The Unicode Standard itself is available in book form, and a much of the surrounding documentation is available on the Unicode web site, but this can be a bit overwhelming. (The Unicode book itself is quite large, although most of it is a listing of the glyphs for the characters.) In fact, you really won't need to know most of the details, because the system frameworks take care of them for you, but it will help to have a basic understanding of the concepts and limitations involved. A very useful source for this is the newly-published Unicode: A Primer (ISBN: 0-7645-4625-2), by Tony Graham, a member of the Unicode Consortium. I was happy to see that it explicitly mentions Unicode support in Mac OS 9 and Mac OS X Server.

The Unicode Home Page

There are many more interesting technologies underpinning Mac OS X, and I plan to cover more of them in upcoming issues. Until then, get cracking!


Community Search:
MacTech Search:

Software Updates via MacUpdate

Dash 3.4.0 - Instant search and offline...
Dash is an API documentation browser and code snippet manager. Dash helps you store snippets of code, as well as instantly search and browse documentation for almost any API you might use (for a full... Read more
RapidWeaver 7.1.7 - Create template-base...
RapidWeaver is a next-generation Web design application to help you easily create professional-looking Web sites in minutes. No knowledge of complex code is required, RapidWeaver will take care of... Read more
Printopia 2.1.22 - Share Mac printers wi...
Run Printopia on your Mac to share its printers to any capable iPhone, iPad or iPod Touch. Printopia will also add virtual printers, allowing you to save print-outs to your Mac and send to apps.... Read more
SteerMouse 5.0 - Powerful third-party mo...
SteerMouse is an advanced driver for USB and Bluetooth mice. It also supports Apple Mighty Mouse very well. SteerMouse can assign various functions to buttons that Apple's software does not allow,... Read more
Arq 5.5.1 - Online backup to Google Driv...
Arq is super-easy online backup for Mac and Windows computers. Back up to your own cloud account (Amazon Cloud Drive, Google Drive, Dropbox, OneDrive, Google Cloud Storage, any S3-compatible server... Read more
Slack 2.3.0 - Collaborative communicatio...
Slack is a collaborative communication app that simplifies real-time messaging, archiving, and search for modern working teams. Version 2.3.0: Note: Now requires OS X 10.8 or later New The app... Read more
Cocktail 10.1 - General maintenance and...
Cocktail is a general purpose utility for macOS that lets you clean, repair and optimize your Mac. It is a powerful digital toolset that helps hundreds of thousands of Mac users around the world get... Read more
Firefox 49.0.2 - Fast, safe Web browser.
Firefox offers a fast, safe Web browsing experience. Browse quickly, securely, and effortlessly. With its industry-leading features, Firefox is the choice of Web development professionals and casual... Read more
Art Text 3.1 - $49.99
Art Text is graphic design software to create stunning illustrations, such as badges, flyers, logos, social headers and icons, text mockups, website graphics and buttons, picture captions, word art,... Read more
AirRadar 3.1.9 - $9.95
With AirRadar, scanning for wireless networks is now easier and more personalized! It allows you to scan for open networks and tag them as favourites or filter them out. View detailed network... Read more

Latest Forum Discussions

See All

Oh...Sir! The Insult Simulator (Games)
Oh...Sir! The Insult Simulator 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: | Read more »
WitchSpring2 (Games)
WitchSpring2 1.27 Device: iOS Universal Category: Games Price: $3.99, Version: 1.27 (iTunes) Description: This is the story of Luna, the Moonlight Witch as she sets out into the world. This is a sequel to Witch Spring. Witch Spring 2... | Read more »
4 popular apps getting a Halloween makeo...
'Tis the season for all things spooky. So much, so, in fact, that even apps are getting into the spirt of things, dressing up in costume and spreading jack o' lanterns all about the place. These updates bring frightening new character skins, scary... | Read more »
Pokémon GO celebrates Halloween with can...
The folks behind Pokémon GO have some exciting things planned for their Halloween celebration, the first in-game event since it launched back in July. Starting October 26 and ending on November 1, trainers will be running into large numbers of... | Read more »
Best Fiends Forever Guide: How to collec...
The fiendship in Seriously's hit Best Fiends has been upgraded this time around in Best Fiends Forever. It’s a fast-paced clicker with lots of color and style--kind of reminiscent of a ‘90s animal mascot game like Crash Bandicoot. The game... | Read more »
5 apps for the budding mixologist
Creating your own cocktails is something of an art form, requiring a knack for unique tastes and devising interesting combinations. It's easy to get started right in your own kitchen, though, even if you're a complete beginner. Try using one of... | Read more »
5 mobile strategy games to try when you...
Strategy enthusiasts everywhere are celebrating the release of Civilization VI this week, and so far everyone seems pretty satisfied with the first full release in the series since 2010. The series has always been about ultra-addictive gameplay... | Read more »
Popclaire talk to us about why The Virus...
Humanity has succumbed to a virus that’s spread throughout the world. Now the dead have risen with a hunger for human flesh, and all that remain are a few survivors. One of those survivors has just called you for help. That’s the plot in POPCLAIRE’... | Read more »
Oceans & Empires preview build sets...
Hugely ambitious sea battler Oceans & Empires is available to play in preview form now on Google Play - but download it quickly, as it’s setting sail away in just a few days. [Read more] | Read more »
Rusty Lake: Roots (Games)
Rusty Lake: Roots 1.1.4 Device: iOS Universal Category: Games Price: $2.99, Version: 1.1.4 (iTunes) Description: James Vanderboom's life drastically changes when he plants a special seed in the garden of the house he has inherited.... | Read more »

Price Scanner via

64GB Apple TV on sale for $159, save $40
Best Buy has the 64GB Apple TV on sale for $40 off MSRP on their online store. Choose free shipping or free local store pickup (if available). Sale price for online orders only, in-store price may... Read more
EyeQue Introduces iOS And Android Based Advan...
Affordable vision technologies developers EyeQue have announced what they claim to be the world’s most advanced intelligent vision solution, pitched as enabling anyone, anywhere to easily and... Read more
Smartwatch Market Tanks, Declining 51.6% in 2...
The worldwide smartwatch market experienced a round of growing pains in the third quarter of 2016 (3Q16), resulting in a year-over-year decline in shipment volumes. According to data from the... Read more
CAZE announces Ultra Thin Glass Screen Protec...
Hong Kong based CAZE has announced its first ultra thin glass screen protector, the Glazz Pro for iPhone 7/7 Plus. Glazz Pro is made from chemically reinforced glass with an anti-fingerprint... Read more
11-inch MacBook Airs on sale for up to $120 o...
Newegg has 11″ MacBook Airs on sale for up to $120 off MSRP. Shipping is free: - 11″ 1.6GHz/128GB MacBook Air: $799.99 $100 off MSRP - 11″ 1.6GHz/256GB MacBook Air: $979 $120 off MSRP Read more
Up to $300 off Macs, $20 off iPads with Apple...
Purchase a new Mac or iPad using Apple’s Education Store and take up to $300 off MSRP. All teachers, students, and staff of any educational institution qualify for the discount. Shipping is free, and... Read more
Apple’s Thursday “Hello Again” Event A Largel...
KGI Securities analyst Ming-Chi Kuo, who has a strong record of Apple hardware prediction accuracy, forecasts in a new note to investors released late last week that a long-overdue redo of the... Read more
12-inch Retina MacBooks on sale for $100 off...
Amazon has 2016 12″ Apple Retina MacBooks on sale for $100 off MSRP. Shipping is free: - 12″ 1.1GHz Silver Retina MacBook: $1199.99 $100 off MSRP - 12″ 1.1GHz Gold Retina MacBook: $1199.99 $100 off... Read more
Save up to $600 with Apple refurbished Mac Pr...
Apple has Certified Refurbished Mac Pros available for up to $600 off the cost of new models. An Apple one-year warranty is included with each Mac Pro, and shipping is free. The following... Read more
PixelStyle Inexpensive Photo Editor For Mac W...
PixelStyle is an all-in-one Mac Photo Editor with a huge range of high-end filters including lighting, blurs, distortions, tilt-shift, shadows, glows and so forth. PixelStyle Photo Editor for Mac... Read more

Jobs Board

*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Solutions Consultant - Apple (United...
# Apple Solutions Consultant Job Number: 52812872 Houston, Texas, United States Posted: Oct. 18, 2016 Weekly Hours: 40.00 **Job Summary** As an Apple Solutions Read more
Lead *Apple* Solutions Consultant - Apple (...
# Lead Apple Solutions Consultant Job Number: 52812906 Houston, Texas, United States Posted: Oct. 18, 2016 Weekly Hours: 40.00 **Job Summary** The Lead ASC is an Read more
*Apple* Retail - Multiple Positions- Towson,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
Software Engineering Intern: Integration / QA...
Job Summary Apple is currently seeking enthusiastic interns who can work full-time for a minimum of 12-weeks between Fall 2015 and Summer 2016. Our software Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.