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 <online@mactech.com>

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
<http://developer.apple.com/techpubs/macosx/System/Documentation/Developer/Cocoa/ObjectiveC/ObjC.pdf>

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
<http://www.unicode.org/>

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

The beginner's guide to Warbits
Warbits is a turn-based strategy that's clearly inspired by Nintendo's Advance Wars series. Since turn-based strategy games can be kind of tricky to dive into, see below for a few tips to help you in the beginning. Positioning is crucial [Read... | Read more »
How to upgrade your character in Spellsp...
So you’ve mastered the basics of Spellspire. By which I mean you’ve realised it’s all about spelling things in a spire. What next? Well you’re going to need to figure out how to toughen up your character. It’s all well and good being able to spell... | Read more »
5 slither.io mash-ups we'd love to...
If there's one thing that slither.io has proved, it's that the addictive gameplay of Agar.io can be transplanted onto basically anything and it will still be good fun. It wouldn't be surprising if we saw other developers jumping on the bandwagon,... | Read more »
How to navigate the terrain in Sky Charm...
Sky Charms is a whimsical match-'em up adventure that uses creative level design to really ramp up the difficulty. [Read more] | Read more »
Victorious Knight (Games)
Victorious Knight 1.3 Device: iOS Universal Category: Games Price: $1.99, Version: 1.3 (iTunes) Description: New challenges awaits you! Experience fresh RPG experience with a unique combat mechanic, packed with high quality 3D... | Read more »
Agent Gumball - Roguelike Spy Game (Gam...
Agent Gumball - Roguelike Spy Game 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: Someone’s been spying on Gumball. What the what?! Two can play at that game! GO UNDERCOVERSneak past enemy... | Read more »
Runaway Toad (Games)
Runaway Toad 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: It ain’t easy bein’ green! Tap, hold, and swipe to help Toad hop to safety in this gorgeous new action game from the creators of... | Read more »
PsyCard (Games)
PsyCard 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: From the makers och Card City Nights, Progress To 100 and Ittle Dew PSYCARD is a minesweeper-like game set in a cozy cyberpunk... | Read more »
Sago Mini Robot Party (Education)
Sago Mini Robot Party 1.0 Device: iOS Universal Category: Education Price: $2.99, Version: 1.0 (iTunes) Description: -- Children's Technology Review Editor's Choice -- | Read more »
Egz – The Origin of the Universe (Games...
Egz – The Origin of the Universe 1.0.2 Device: iOS Universal Category: Games Price: $3.99, Version: 1.0.2 (iTunes) Description: ►►► Special offer until 2nd may : get the game at 2.99€ instead of 3.99€ ! ◄◄◄ Egz is a mesmerizing mix... | Read more »

Price Scanner via MacPrices.net

Price drops on clearance 12-inch Retina MacBo...
B&H Photo has dropped prices on leftover 2015 12″ Retina MacBooks with models now available starting at $999. Shipping is free, and B&H charges NY tax only: - 12″ 1.1GHz Gray Retina MacBook... Read more
15-inch Retina MacBook Pros available for $20...
B&H Photo has 15″ Retina MacBook Pros on sale for up to $210 off MSRP. Shipping is free, and B&H charges NY tax only: - 15″ 2.2GHz Retina MacBook Pro: $1799 $200 off MSRP - 15″ 2.5GHz Retina... Read more
Target offers Apple Watch Sport for $50 off M...
Target has Apple Watch Sports on sale for $50 off MSRP for a limited time. Choose free shipping or free local store pickup (if available). Sale prices for online orders only, in-store prices may vary... Read more
Apple restocks Certified Refurbished Mac mini...
Apple has restocked Certified Refurbished 2014 Mac minis, with models available starting at $419. Apple’s one-year warranty is included with each mini, and shipping is free: - 1.4GHz Mac mini: $419 $... Read more
15-inch 2.2GHz Retina MacBook Pro on sale for...
Amazon.com has the 15″ 2.2GHz Retina MacBook Pro on sale for $1699.99 including free shipping. Their price is $300 off MSRP, and it’s the lowest price available for this model from any reseller (and... Read more
Apple Beats Microsoft at Own Game; Amazon Pri...
First quarter seasonality combined with an overall disinterested customer base led to an annual decline of 14.7% in worldwide tablet shipments during the first quarter of 2016 (1Q16). Worldwide... Read more
Tablets Had Worst Quarter Since 2012, says St...
The global tablet market began 2016 just as 2015 left off, down. Tablet shipments fell 10% to 46.5 million units during the Q1 2016, according to the new “Preliminary Global Tablet Shipments and... Read more
Clearance 13-inch MacBook Airs, Apple refurbi...
Apple recently dropped prices on certified refurbished 2015 13″ MacBook Airs with 4GB of RAM with models now available starting at $759. An Apple one-year warranty is included with each MacBook, and... Read more
Clearance 12-inch Retina MacBooks, Apple refu...
Apple has dropped prices on Certified Refurbished 2015 12″ Retina MacBooks with models now available starting at $929. Apple will include a standard one-year warranty with each MacBook, and shipping... Read more
Aleratec Releases Mac Software Upgrade for 1...
California based Aleratec Inc., designer, developer and manufacturer of Portable Device Management (PDM) charge/sync products for mobile devices and professional-grade duplicators for hard disk... Read more

Jobs Board

Restaurant Manager (Neighborhood Captain) - A...
…in every aspect of daily operation. WHY YOU'LL LIKE IT: You'll be the Big Apple . You'll solve problems. You'll get to show your ability to handle the stress and Read more
Simply Mac *Apple* Specialist- Service Repa...
Simply Mac is the largest premier retailer of Apple products in the nation. In order to support our growing customer base, we are currently looking for a driven Read more
*Apple* Retail - Multiple Positions - Apple,...
Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, you're also the Read more
Restaurant Manager (Neighborhood Captain) - A...
…in every aspect of daily operation. WHY YOU'LL LIKE IT: You'll be the Big Apple . You'll solve problems. You'll get to show your ability to handle the stress and Read more
Automotive Sales Consultant - Apple Ford Linc...
…you. The best candidates are smart, technologically savvy and are customer focused. Apple Ford Lincoln Apple Valley is different, because: $30,000 annual salary Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.