Saturday, 28 January 2006

The Cocoa Conundrum

cocoa conundrumWhen it comes to software on the Mac platform it's a mixed bag. I don't mean like on Windows, where the bag is full of akes, scorpio , rusty blades, and the occasional bit of peach. Software on the Mac has been in flux for a decade. When A le bought NeXT, most of us figured Copland was dead in the water (and it was). Personally, I wish we'd seen OpenDoc come to fruition, but that comes from years of dealing with bloatware. OS X pushed the "Cla ic" Mac OS further and further into the shadows, until, with the advent of Intel Macs, it's pretty much dying off... Read the fine print on these Leopard features for developers, and you'll realize how dead "Cla ic" really is. Perha we should call it "Relic."

Now ask anyone (well, almost anyone) who's coded Cocoa a and they'll tell you it's lovely. Shoot, A le's so proud of the frameworks they provide for devs, they even touted a new one, Core Animation, as one of the 10 things coming in Leopard. But we're still living a dual-existence (triple or quadruple or more, if you get technical) in that you have Cocoa a , and you have the non-Cocoa a . Perha you know about Java, which is what Limewire uses. Or X11's ability to run a like GIMP. Both of those have their quirks. Java a can be all over the place, and X11 doe 't integrate the UI of OSX, among other i ues. Carbon is a mix of old-skool API's (implemented in good ol' C if I recall), and permeates Mac a like Office and Photoshop, where a teardown/rebuild would be too unwieldy. There's also the fact that key a like Finder and QuickTime are Carbon enough to still have some legacy code from way back when, which might account for some of their quirks too... No holy wars about Cocoa vs. Carbon, OK? I'm with David Wei on this one. So you have Cocoa, Carbon and everything else.

Getting granular for a moment, look at a tale of two browsers: Safari vs. Firefox. Safari is a Cocoa a , and it is tightly integrated with OS X tools. It maintai the ability to look up words in the Dictionary a with a right-click, and acce the OS X Keychain. Firefox is not a (full) Cocoa a , and you can't niftily use a keyboard shortcut to look up a word, nor will it store pa words in Keychain. I've learned to use this "wall" to my advantage. Since the pa words are stored differently, I can automatically log in to systems (like gmail) using two accounts simultaneously. I use my busine gmail on one browser, and personal on the other. Unfortunately, you're limited to 3, as all Firefox-based browsers will share their version of Keychain, and all Webkit-derived browsers use Keychain. I say three, because Opera stands alone (and doe 't always play nice with Gmail). There's the conundrum: to the average user, they don't care, but when little non-Cocoa quirks a ear, they scratch their heads and wonder why the Mac doe 't just "do stuff" one standard way.

Keep reading for my take on shareware, freeware, and malware in OS X...
I am continually amazed at the amount of shareware and freeware available for Macs. Of course, A le's developer-friendly (arguable, I understand) environment hel . Used to be, you made an A le a , you were just kinda slugging it out in ace. Let's face it, "Cla ic" might mean pre-OSX to me, but to a real estate agent, "cla ic" just mea old and worn-out. Since OS 7 the Mac environment got more complicated, slow, wacky and isolated. Like Ted Kaczy ki.

What a difference a decade makes. Some folks are making a go of it with Mac shareware. For one thing, niche a that merely a oy a major publisher -- like Adobe -- are readily available. Tra mit is a good example. Panic itself is a poster boy for Mac development anyway, but Tra mit is how FTP should work on any platform. But an FTP program from Adobe? Can you imagine? It'd need 3 updater/helper a , an IRC client, and a WYSIWYG coffee mug designer a and Acrobat Reader to be i talled before you could run the thing. Maybe it's the OpenDoc fan in me, but I love these little "indie" a .

Delicious Mo ter is another good example. Here's a company run largely in a virtual environment, utilizing A le dev tools and tech to create this one really cool a : Delicious Library. This is an a so good people repeatedly trot it out to impre their Windows brethren. Same with Comic Life -- so cool < an style="font-style: italic;">it comes prei talled! And these are a you find only on the Mac -- which is quite a turnaround from 1997. These are also increasingly Cocoa a , which makes se e, as they tap those cool Cocoa frameworks...Shoot, Yojimbo exists and works so well precisely because A le put in some great frameworks (Core Data anyone?)... One might say it is easier to make great a on the Mac.

On the PC, it's easier to just make an a lication. Lower the bar in that way also increases the number of dingbats making those "easy" a . I've programmed Visual Basic. It's way too easy. I say that only half-joking, because VB is fun to play with. You can write some really ugly, a oying a in VB too. But again, that's probably where you find a lot of the dregs of coding -- never mind the crummy game engines available for PCs. That's a whole other post...

And freeware? Here's where the Mac shows some clear edge too. I think Mac freeware tends to be a little le atrocious. Sure, you have stellar examples as Adium or Journalr. Keep in mind much of what you see in Mac freeware stems from those APIs A le crams into OS X. Journalr can tie into the video or audio because there are pipes for that. There's .Mac sync for those who care. Leopard promises even more, like total acce to iCal's data store, which simplifies all sorts of time management i ues. GTD fa rejoice!

I'm not a total A le apologist. Games, utilities and freeware are much more plentiful on PCs. There is certainly a robust developer community, and MS has gone to great pai to make a backwards-compatible. The u ide is folks who upgrade to XP from Win95 have had some succe getting those old a to run. So there is TO of software on Windows. There's lots of malware too, with many a lication we ites emblazoned with "100% Malware-free" because it's almost impo ible to separate the wheat from the chaff. The fu y thing is, if, like most Mac users, you just blaze through the i taller, you could still easily put something malicious on your machine. You might not even think twice about typing in your pa word, not if you downloaded it yourself! But so far there have only been a few examples of this ha ening. Not the few thousand you see elsewhere...

Still, bad Mac a stick out. Sometimes the icon just i 't right. Too glo y? Not glo y enough? Or, < an style="font-style: italic;">ga , no tra arency? Sometimes the UI is cumbersome and complicated, although I've seen too simple on a Mac before. Worst offenders go to a who repeatedly crash or lock up themselves or, rare though it may be, the system itself. For example: I really wanted to try Multidash to manage my widgets. I often undock from a larger monitor, and would love an easier way to swap out my 15" screen with my 2-screen setup. Since I'm ahead of A le on the "need" curve here (really, did we need another release to wait for this?), I gave Multidash a try. As documented, it would eventually hammer the proce ors. It also lost settings and eventually wonked up the video output (which was a neat trick). So iI trashed it. Hey, I understand it was a beta, and a darn clever one. It's sad when commercial outfits like Adobe screw it up though, i 't it? I understand porting Photoshop is a chore, so I forgive this (honestly, I do). But making Acrobat reader such a piece of... well, my beef is that your casual computer user will think PDFs need to use Acrobat. They'll download and i tall it. Gue what? It stinks. Then they blame the Mac. "It's not as fast as my PC." Oh really? Try saving that web page as a PDF, we'll see who finishes first.

Unfortunately, to some Mac users, even the slightest imperfectio can incur our wrath. As a result, a number of developers try to improve the Mac a themselves. Multidash was one example, and Chax is another. Ta are coming in Leopard, which kills one function of Chax. Widgets made the Konfabulator crowd mad, and who knows, maybe Safari will finally ask me if I really want to close the 32 ta I ent hours researching before I accidentally close the one about the cat on YouTube. Developers continue to slog it out though, making more cool stuff and i ovating A le's own admittedly excellent work. And yet I can only recall one a fro Windows that'll let me re-arrange the items in the taskbar... I typically avoid a lot of haxies though, because A le's updates tend to break those. One of the reaso A le doe 't really want you to use certain Mac-enhancing a is the user experience. If you become addicted to Inquisitor, and then move to a different machine where it's not i talled, all of a sudden you have to change your routine. This i 't always a big deal, but try cutting off (or crashing) Quicksilver -- sorely mi ed within moments. Granted, I can hardly go back to using pre-2-finger scrolling trackpads, and that's an A le upgrade.

The benefit of Mac fandom, and in this case, Cocoa fandom, is a better breed of software tools. While arguable, I'd say a in general are slicker, cooler and easier-to-use on Macs. It's been a long, strange trip for A le developers though. I remember using HLINE and VLINE to program crummy little blo on my A le ][, and recoiling in horror at the hex codes to make "real" games work. Now you can make a platformer with Photoshop! Add in decent Java su ort, X11, the UNIX underpi ings, and some killer dev tools (free with every machine, I might add), and what's not to love about developing for Macs? As the hardware gets better, A le will no doubt continue to push more powerful frameworks into Cocoa, which tra lates into yet more freakin' awesome a for the rest of us. I raise a mug of fancy hot cocoa to the developers of Mac a everywhere -- and thanks for all the code!

No comments:

Post a Comment