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

FileMaker Pro 19.4.2 - Quickly build cus...
FileMaker Pro is the tool you use to create a custom app. You also use FileMaker Pro to access your app on a computer. Start by importing data from a spreadsheet or using a built-in Starter app to... Read more
Adobe Illustrator 26.0.3 - Professional...
You can download Adobe Illustrator for Mac as a part of Creative Cloud for only $20.99/month. Adobe Illustrator for Mac is the vector graphics classics in the design industry. It is a digital... Read more
WhatRoute 2.4.9 - Geographically trace o...
WhatRoute is designed to find the names of all the routers an IP packet passes through on its way from your Mac to a destination host. It also measures the round-trip time from your Mac to the router... Read more
Notion 2.0.20 - A unified workspace for...
Notion is the unified workspace for modern teams. Notion Features: Integration with Slack Documents Wikis Tasks Release notes were unavailable when this listing was updated. Download Now]]> Read more
Monterey Cache Cleaner 17.0.2 - Clear ca...
Monterey Cache Cleaner is an award-winning general-purpose tool for macOS X. MCC makes system maintenance simple with an easy point-and-click interface to many macOS X functions. Novice and expert... Read more
Firetask Pro 4.6.8 - Innovative task man...
Firetask Pro represents the next generation of easy-to-use, project-oriented task management apps. By combining David Allen's powerful Getting Things Done (GTD®) approach with classical task... Read more
Smultron 13.0.4 - Easy-to-use, powerful...
Smultron 13 is the text editor for all of us. Smultron is powerful and confident without being complicated. Its elegance and simplicity helps everyone being creative and to write and edit all sorts... Read more
Box Sync 4.0.8057 - Online synchronizati...
Box Sync gives you a hard-drive in the Cloud for online storage. Note: You must first sign up to use Box. What if the files you need are on your laptop -- but you're on the road with your iPhone? No... Read more
Audio Hijack 3.8.10 - Record and enhance...
Audio Hijack (was Audio Hijack Pro) drastically changes the way you use audio on your computer, giving you the freedom to listen to audio when you want and how you want. Record and enhance any audio... Read more
Direct Mail 6.0.1 - Create and send grea...
Direct Mail is an easy-to-use, fully-featured email marketing app purpose-built for macOS. Create, send, and track great looking email campaigns that get results. Start your newsletter by selecting... Read more

Latest Forum Discussions

See All

Hopefully Not Jared’s Last Show – The To...
My suspicions from last week were correct, and after my two kids tested positive for Covid last week both my wife and I have now tested positive as well. It seems you just can’t escape this stuff lately. Thankfully the two little ones are pretty... | Read more »
TouchArcade Game of the Week: ‘Micro RPG...
I feel like idle games are one of those perfect fits for the mobile platform. Not that they replace more involved gaming experiences when you’re in the mood for that, but they do fit in alongside other types of games just fine as a “go to" when you... | Read more »
‘Phantom Blade: Executioners’ Closed Bet...
Phantom Blade: Executioners is holding a small-scale technical test that lets players get first dibs on the KungFuPunk action RPG. Offered to selected players only, S-Game’s first Closed Beta Test will provide players with limited edition in-game... | Read more »
New ‘Warhammer 40,000: Tacticus’ Video S...
Back in September Snowprint Studios, who you may know from their previous Legend of Solgard or Rivengard, announced that they’d partnered up with Games Workshop to put out a new tactical game in the Warhammer 40,000 universe titled Warhammer 40,000... | Read more »
SwitchArcade Round-Up: ‘Pokemon Legends:...
Hello gentle readers, and welcome to the SwitchArcade Round-Up for January 28th, 2022. We’ve got a bunch of new releases to look at today, with a few big hitters, a few mid-level diversions, and a healthy supply of compost. Since it’s Friday, we... | Read more »
Phantom Blade: Executioners, S-Game...
S-Game has kicked off its first Closed Beta Test for Phantom Blade: Executioners, inviting a selected few to get first dibs on the upcoming KungFuPunk action RPG on mobile. The CBT officially begins this January 28th, and beta testers will receive... | Read more »
‘Infinite Galaxy’ First Anniversary: Cel...
Cultivating a new generation of valiant commanders across 240 countries worldwide, Infinite Galaxy has quenched players’ thirst to explore the vastness of space – and there are only more intergalactic adventures to embark on from here on out. Camel... | Read more »
War and Order: How to brave the cold in...
War and Order's 6th-anniversary celebrations are underway, and all in good time too - this season not only brings about fabulous festivities, but it also lets players experience the harsh winter in an entirely new way. [Read more] | Read more »
‘Hidden Folks+’ Is This Week’s New Apple...
The original Hidden Folks from Adriaan de Jongh is an excellent hidden objects game featuring hand drawn visuals. It is an absolute joy to play, and it has now released on Apple Arcade in the form of Hidden Folks+ () as an App Store great. If you’... | Read more »
Mini Metro’s First Big Update of 2022 Ad...
Last year saw great updates for Dinosaur Polo Club’s Mini Metro ($3.99) which is also available on Apple Arcade as an App Store Great. | Read more »

Price Scanner via MacPrices.net

Apple has clearance 2020 13″ MacBook Airs ava...
Apple has clearance, Certified Refurbished, 2020 13″ Intel-based MacBook Airs in stock today starting at only $719 and up to $370 off original MSRP. Each MacBook features a new outer case, comes with... Read more
The cheapest iPhones for sale today at Apple...
Apple has restocked Apple Certified Refurbished iPhone 8 models starting at only $359. Each refurbished iPhone comes with a fresh external case, standard Apple 1-year warranty, and free shipping.... Read more
14″ MacBook Pro with Apple M1 Max CPU now in...
Looking for a new 14″ MacBook Pro with an Apple M1 Max CPU? Stock is finally trickling into Apple resellers. B&H has Silver 14″ M1 Max MacBook Pros in stock today for $2899 including free 1-2 day... Read more
14″ MacBook Pros with Apple M1 Pro CPUs are i...
Amazon is reporting stock of 14″ MacBook Pros with M1 Pro CPUs today with a $50 discount. Shipping is free, and delivery is available by February 1st for most configurations. Be sure to make your... Read more
Apple has restocked 13″ M1 MacBook Pros for $...
Apple has restocked a full line of 13″ M1 MacBook Pros available Certified Refurbished, starting at only $1099 and up to $230 off original MSRP. These are the cheapest M1 MacBook Pros for sale today... Read more
Apple’s AirPods Max headphones are on sale fo...
Amazon has Silver, Blue, and Space Gray Apple AirPods Max headphones on sale today for $100 off MSRP. Shipping is free, and all models are in stock today. Their price is the lowest currently... Read more
Open a new line of service at Verizon and get...
Verizon is giving away 64GB Apple iPhone 12 minis or your choice of an iPhone 11 to customers who choose one of these phones and open a new line of service. Offer is available online only, and no... Read more
Open-box 13″ M1 MacBook Airs now available st...
QuickShip Electronics has open-box return 13″ M1 MacBook Airs in stock and on sale for $200-$400 off MSRP on their eBay store right now with free express delivery. According to QuickShip, “The item... Read more
Verizon’s 2022 iPad promo: $100-$310 off any...
Verizon has cellular-capable iPads on sale for $100-$310 off MSRP when purchased with an Unlimited service plan. Sale price is applied to your account monthly over a 24 or 30 month period, depending... Read more
Sunday Sale: Apple AirPods are on sale for up...
Amazon has Apple AirPods on sale for $10-$100 off MSRP today, depending on the model. All are in stock today with free delivery: – AirPods Max headphones (Blue): $449 $100 off MSRP – AirPods Max... Read more

Jobs Board

Registered Nurse (RN) Employee Health PSJH -...
…is calling for a Registered Nurse (RN) Employee Health PSJH to our location in Apple Valley, CA.** We are seeking a Registered Nurse (RN) Employee Health PSJH to be Read more
Systems Administrator - Pearson (United State...
…and troubleshoot Windows operating systems (workstation and server), laptop computers, Apple iPads, Chromebooks and printers** + **Administer and troubleshoot all Read more
IT Assistant Level 1- IT Desktop Support Anal...
…providing tier-1 or better IT help desk support in a large Windows and Apple environment * Experience using IT Service Desk Management Software * Knowledge of IT Read more
Human Resources Business Partner PSJH - Provi...
…**is calling a** **Human Resources Business Partner, PSJH** **to our location in Apple Valley, CA.** **Applicants that meet qualifications will receive a text with Read more
Manager Community Health Investment Programs...
…is calling a Manager Community Health Investment Programs PSJH to our location in Apple Valley, CA.** **Qualified candidates will be invited to do a self-paced video Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.