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

Latest Forum Discussions

See All

Combo Quest (Games)
Combo Quest 1.0 Device: iOS Universal Category: Games Price: $.99, Version: 1.0 (iTunes) Description: Combo Quest is an epic, time tap role-playing adventure. In this unique masterpiece, you are a knight on a heroic quest to retrieve... | Read more »
Hero Emblems (Games)
Hero Emblems 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: ** 25% OFF for a limited time to celebrate the release ** ** Note for iPhone 6 user: If it doesn't run fullscreen on your device... | Read more »
Puzzle Blitz (Games)
Puzzle Blitz 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: Puzzle Blitz is a frantic puzzle solving race against the clock! Solve as many puzzles as you can, before time runs out! You have... | Read more »
Sky Patrol (Games)
Sky Patrol 1.0.1 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0.1 (iTunes) Description: 'Strategic Twist On The Classic Shooter Genre' - Indie Game Mag... | Read more »
The Princess Bride - The Official Game...
The Princess Bride - The Official Game 1.1 Device: iOS Universal Category: Games Price: $3.99, Version: 1.1 (iTunes) Description: An epic game based on the beloved classic movie? Inconceivable! Play the world of The Princess Bride... | Read more »
Frozen Synapse (Games)
Frozen Synapse 1.0 Device: iOS iPhone Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: Frozen Synapse is a multi-award-winning tactical game. (Full cross-play with desktop and tablet versions) 9/10 Edge 9/10 Eurogamer... | Read more »
Space Marshals (Games)
Space Marshals 1.0.1 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0.1 (iTunes) Description: ### IMPORTANT ### Please note that iPhone 4 is not supported. Space Marshals is a Sci-fi Wild West adventure taking place... | Read more »
Battle Slimes (Games)
Battle Slimes 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: BATTLE SLIMES is a fun local multiplayer game. Control speedy & bouncy slime blobs as you compete with friends and family.... | Read more »
Spectrum - 3D Avenue (Games)
Spectrum - 3D Avenue 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: "Spectrum is a pretty cool take on twitchy/reaction-based gameplay with enough complexity and style to stand out from the... | Read more »
Drop Wizard (Games)
Drop Wizard 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: Bring back the joy of arcade games! Drop Wizard is an action arcade game where you play as Teo, a wizard on a quest to save his... | Read more »

Price Scanner via MacPrices.net

14-inch M4 Pro/M4 Max MacBook Pros on sale th...
Don’t pay full price! Get a new 14″ MacBook Pro with an M4 Pro or M4 Max CPU for up to $320 off Apple’s MSRP this weekend at these retailers…they are the lowest prices available for these MacBook... Read more
Get a 15-inch M4 MacBook Air for $150 off App...
A couple of Apple retailers are offering $150 discounts on new 15″ M4 MacBook Airs this weekend. Prices at these retailers start at $1049: (1): Amazon has new 15″ M4 MacBook Airs on sale for $150 off... Read more
Unreal Mobile is offering a $100 discount on...
Unreal Mobile, an MVNO using AT&T and T-Mobile’s networks, is offering a $100 discount on any new iPhone with service. This includes new iPhone 16 models as well as iPhone 15, 13, and SE phones... Read more
16-inch M4 Pro MacBook Pros on sale for $250-...
Don’t pay full price! Amazon has 16-inch M4 Pro MacBook Pros (Silver or Black colors) on sale right now for up to $300 off Apple’s MSRP. Shipping is free. These are the lowest prices currently... Read more
Get a 14-inch M4 MacBook Pro for up to $240 o...
Amazon is offering a $150-$250 discount on Apple’s 14-inch M4 MacBook Pros right now. Shipping is free. Be sure to select Amazon as the seller, rather than a third-party seller: – 14″ M4 MacBook Pro... Read more
Clearance 14-inch M3 Pro MacBook Pros availab...
B&H Photo has clearance 14″ M3 Pro MacBook Pros (in Black or Silver) on sale for $500 off original MSRP, only $1499. B&H offers free 1-2 day delivery to most US addresses: – 14″ 11-Core M3... Read more
Sams Club is offering a $50 discount on Titan...
Sams Club has Titanium Apple Watch Series 10 models on sale for $50 off Apple’s MSRP. Sams Club Membership required. Note that sale prices are for online orders only, in-store prices may vary. Choose... Read more
Sunday Sale: Apple’s latest 13-inch M4 MacBoo...
Amazon has new 13″ M4 MacBook Airs on sale for $150 off MSRP right now, starting at $849. Sale prices apply to most colors and configurations. Be sure to select Amazon as the seller, rather than a... Read more
Apple’s M4 Mac minis on sale for record-low p...
B&H Photo has M4 and M4 Pro Mac minis in stock and on sale right now for up to $150 off Apple’s MSRP, each including free 1-2 day shipping to most US addresses. Prices start at only $469: – M4... Read more
Week’s Best Deals: 14-inch M4 MacBook Pros fo...
Don’t pay full price! These retailers are offering $200-$250 discounts on new 14-inch M4 MacBook Pros this week…they are the lowest sale prices available for new MacBook Pros: (1): Amazon is offering... Read more

Jobs Board

All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.