Filed under: Analysis / Opinion, Software, Cult of Mac, Freeware, Open Source, Developer
The Cocoa Conundrum
When 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 snakes, scorpions, rusty blades, and the occasional bit of peach. Software on the Mac has been in flux for a decade. When Apple 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 "Classic" 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 "Classic" really is. Perhaps we should call it "Relic."Now ask anyone (well, almost anyone) who's coded Cocoa apps and they'll tell you it's lovely. Shoot, Apple'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 apps, and you have the non-Cocoa apps. Perhaps you know about Java, which is what Limewire uses. Or X11's ability to run apps like GIMP. Both of those have their quirks. Java apps can be all over the place, and X11 doesn't integrate the UI of OSX, among other issues. Carbon is a mix of old-skool API's (implemented in good ol' C if I recall), and permeates Mac apps like Office and Photoshop, where a teardown/rebuild would be too unwieldy. There's also the fact that key apps 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 Weiss 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 app, and it is tightly integrated with OS X tools. It maintains the ability to look up words in the Dictionary app with a right-click, and access the OS X Keychain. Firefox is not a (full) Cocoa app, and you can't niftily use a keyboard shortcut to look up a word, nor will it store passwords in Keychain. I've learned to use this "wall" to my advantage. Since the passwords are stored differently, I can automatically log in to systems (like gmail) using two accounts simultaneously. I use my business 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 doesn't always play nice with Gmail). There's the conundrum: to the average user, they don't care, but when little non-Cocoa quirks appear, they scratch their heads and wonder why the Mac doesn'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, Apple's developer-friendly (arguable, I understand) environment helps. Used to be, you made an Apple app, you were just kinda slugging it out in space. Let's face it, "Classic" might mean pre-OSX to me, but to a real estate agent, "classic" just means old and worn-out. Since OS 7 the Mac environment got more complicated, slow, wacky and isolated. Like Ted Kaczynski.
What a difference a decade makes. Some folks are making a go of it with Mac shareware. For one thing, niche apps that merely annoy a major publisher -- like Adobe -- are readily available. Transmit is a good example. Panic itself is a poster boy for Mac development anyway, but Transmit is how FTP should work on any platform. But an FTP program from Adobe? Can you imagine? It'd need 3 updater/helper apps, an IRC client, and a WYSIWYG coffee mug designer app and Acrobat Reader to be installed before you could run the thing. Maybe it's the OpenDoc fan in me, but I love these little "indie" apps.Delicious Monster is another good example. Here's a company run largely in a virtual environment, utilizing Apple dev tools and tech to create this one really cool app: Delicious Library. This is an app so good people repeatedly trot it out to impress their Windows brethren. Same with Comic Life -- so cool it comes preinstalled! And these are apps you find only on the Mac -- which is quite a turnaround from 1997. These are also increasingly Cocoa apps, which makes sense, as they tap those cool Cocoa frameworks...Shoot, Yojimbo exists and works so well precisely because Apple put in some great frameworks (Core Data anyone?)... One might say it is easier to make great apps on the Mac.
On the PC, it's easier to just make an application. Lower the bar in that way also increases the number of dingbats making those "easy" apps. 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, annoying apps 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 less 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 Apple 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 access to iCal's data store, which simplifies all sorts of time management issues. GTD fans rejoice!
I'm not a total Apple apologist. Games, utilities and freeware are much more plentiful on PCs. There is certainly a robust developer community, and MS has gone to great pains to make apps backwards-compatible. The upside is folks who upgrade to XP from Win95 have had some success getting those old apps to run. So there is TONS of software on Windows. There's lots of malware too, with many application websites emblazoned with "100% Malware-free" because it's almost impossible to separate the wheat from the chaff. The funny thing is, if, like most Mac users, you just blaze through the installer, you could still easily put something malicious on your machine. You might not even think twice about typing in your password, not if you downloaded it yourself! But so far there have only been a few examples of this happening. Not the few thousand you see elsewhere...
Still, bad Mac apps stick out. Sometimes the icon just isn't right. Too glossy? Not glossy enough? Or, gasp, no transparency? Sometimes the UI is cumbersome and complicated, although I've seen too simple on a Mac before. Worst offenders go to apps 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 Apple 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 processors. 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, isn'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 install it. Guess 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 imperfections can incur our wrath. As a result, a number of developers try to improve the Mac apps themselves. Multidash was one example, and Chax is another. Tabs 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 tabs I spent 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 innovating Apple's own admittedly excellent work. And yet I can only recall one app fro Windows that'll let me re-arrange the items in the taskbar... I typically avoid a lot of haxies though, because Apple's updates tend to break those. One of the reasons Apple doesn't really want you to use certain Mac-enhancing apps is the user experience. If you become addicted to Inquisitor, and then move to a different machine where it's not installed, all of a sudden you have to change your routine. This isn't always a big deal, but try cutting off (or crashing) Quicksilver -- sorely missed within moments. Granted, I can hardly go back to using pre-2-finger scrolling trackpads, and that's an Apple upgrade.
The benefit of Mac fandom, and in this case, Cocoa fandom, is a better breed of software tools. While arguable, I'd say apps in general are slicker, cooler and easier-to-use on Macs. It's been a long, strange trip for Apple developers though. I remember using HLINE and VLINE to program crummy little blobs on my Apple ][, 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 support, X11, the UNIX underpinnings, 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, Apple will no doubt continue to push more powerful frameworks into Cocoa, which translates into yet more freakin' awesome apps for the rest of us. I raise a mug of fancy hot cocoa to the developers of Mac apps everywhere -- and thanks for all the code!

![TUAW [Cafepress]](http://www.blogsmithmedia.com/www.tuaw.com/media/tuaw-cafepress-promo.png)


Reader Comments (Page 1 of 2)
Scott H said 2:16PM on 10-31-2006
Interesting piece, thanks. I love the description of the Windows "bag" at the beginning.
One small point--I still cannot understand the touting of Delicious Library as some wonder app when a far better app, also Mac-only, DVDpedia, gets so little attention. DL has a limited set of functionality and an unlimited amount of publicity. The *pedia apps (DVD-, Book-, CD-, Game-) work like iTunes' long-lost cousin, are fully integrated into the Mac environment (Spotlight, etc.), are highly customizable, and, by comparison to Delicious, are practically unknown.
I guess it supports your theory that the *pedia developers can create such outstanding programs, with so little publicity, and have a large enough installed base to make a living at it and continue development.
I do agree with you on Comic Life, though--there's a real wonder app to show off to Windows users!
Reply
luke said 2:30PM on 10-31-2006
Too many Mac apps are over hyped. Transmit is not the be on end all of FTP programs. It doesn't even have filters, yet because it's simple its hailed the ultimate FTP application. I don't get it, if you upload a few files then it's fine. If you work on a huge website than it's not so great. There are many Windows FTP programs that walk all over it in terms of features.
In general though, mac shareware has a nice vibe. It's dissapointing Apple don't give developers a helping hand by letting them use the same widgets as they use so you have now all these people trying to copy and you end up with lots of apps all trying to mimic dark plastic and all looking slightly different. Apple don't follow their HIG so I dunno how they can expect anyone else to either.
One of the things that suck about mac shareware, especially lately is the fact that these super cool apps seem to care more about hype and interfaces than they do about features, Cha-Ching and Disco being two recent examples.
Reply
Joshua Ochs said 1:09AM on 11-01-2006
Pardon me, but was there a point somewhere in this rambling? I certainly didn't see it. A couple things, however:
OpenDoc - great idea, and absolutely horrid implementation. It worked well, but was fiendishly complex to develop for. Even if Apple's partners hadn't bailed out, it likely would have died of its own complexity.
Developing for Classic Mac OS - I don't know where the hell you get off saying things "got more complicated, slow, wacky and isolated". If anything, huge amounts of cruft from the System 6 days fell away (dealing with DA's and such), new APIs made life MUCH easier (Appearance manager), and every release from Mac OS 7.6 onward got faster and more streamlined. I get the distinct feeling you haven't been in Mac development all that long.
Meanwhile, as far as I'm concerned, Transit is utter crap. The whole two-pane "local files" and "remote files" has been done poorly for decades. While it integrates with Mac OS X API's nicely, the interface is anything but innovative or useful. It's horribly un-Mac-like (it copied Norton Commander, for crying out loud), and looks and acts nothing like the Finder (which since it's essentially a remote filesystem, it should). Add writing to Mac OS X's built-in FTP, and kiss these things goodbye.
And again, what was the point here? API's? Software? Developers? Huh?
Reply
Todd said 7:27PM on 11-20-2006
I've developed in both Cocoa and C# .NET....and my dream is for the .NET platform (System.Windows.Forms) to be ported to the Mac. Objective C is so flippin' annoying and unnatural, when compared to today's mainstream, programming languages.
In productivity, Visual Studio .NET is handdown the most productive IDE i've ever used in my 12 yrs of software development. VS.NET is to Xcode as a Minivan is to a Sedan.
Maybe someday...I hold out hope for Codeweaver's Cross Over (http://www.codeweavers.com/products/cxmac/)
Reply
Tony said 3:57PM on 10-31-2006
"Too many Mac apps are over hyped. Transmit is not the be on end all of FTP programs. It doesn't even have filters, yet because it's simple its hailed the ultimate FTP application. I don't get it, if you upload a few files then it's fine. If you work on a huge website than it's not so great. There are many Windows FTP programs that walk all over it in terms of features."
Transmit is a good *basic* FTP app. If you want a high-end program on the Mac, try Interarchy:
http://www.interarchy.com/
It'll stomp over any Windows FTP app that I've tried...
Reply
KeynoteKen said 4:53PM on 10-31-2006
ComicLife won't be Mac Only for long. They're actively developing a Windows version because schools love it and many schools have Windows. But it is indeed a great lil app! Kudos to Apple for giving it to everyone who buys a new Mac!
Reply
James Huston said 4:44PM on 10-31-2006
Firefox is about the worst browser to use in comparison to Safari to show off Cocoa versus other things. Firefox is built to be cross platform, it's just as siolated on Windows.
Reply
Sergiy Gagarin said 4:48PM on 10-31-2006
Victor, I'm asking how do you accidently close those al 32 tabs? Isn't it by hitting CMD+Q instead of CMD+W? That was my case so I've just simply changed shortcut for quiting Safari to CMD+Alt+Q
Was it helpful?
Reply
Nicola D'Agostino said 5:02PM on 10-31-2006
"I say three, because Opera stands alone"
Let's make that four by adding iCab to the mix:
http://www.icab.de/
nda
Reply
James Huston said 8:19PM on 10-31-2006
Camino uses the keychain that's not the same as Safari and doesn't use Firefox's wallet system. So go ahead, have as many browsers as you want.
Reply
yonatron said 5:24PM on 10-31-2006
The fact that you can use the 2 browsers to log into 2 different gmail accounts has nothing to do with where the passwords are stored; as a matter of fact, either of them can store multiple username/password combinations per site.
It's the separate cookies that allow you to log into separate accounts.
Don't they pay you to blog?
Reply
Ken R said 6:05PM on 10-31-2006
Won't Firefox 3 be cocoa?
Reply
Tony said 6:53PM on 10-31-2006
"Let's make that four by adding iCab to the mix:"
Ahhh...my favorite former Atari web browser!
(If you didn't already know, CAB was the most popular browser for the Atari ST/TT/Falcon computers, and stood for Crystal Atari Browser...iCab is made by the same guy.)
Reply
Tom said 7:22PM on 10-31-2006
This article was allllll over the place. Not sure what the point was... Cocoa is good?
Reply
tf said 8:32PM on 10-31-2006
This is also flat out wrong: Safari since it is largely KHTML ported is primarily C++ with the Cocoa vits being just the UI.
Reply
Spasso said 9:17PM on 10-31-2006
Hey - there's 2 taskbar rearranging apps. :P
Button Boogie does it to: http://www.pcmag.com/article2/0,1895,1901633,00.asp
But they want $8 for something that clearly should be in the OS. It's not in Vista either.
Reply
Roustem said 9:38PM on 10-31-2006
About using Safari and Firefox to keep different Gmail logins: another option is to use 1Passwd. With 1Passwd you can easily use multiple logins and share them between Safari, Firefox, Flock, Camino, OmniWeb and DEVONagent browsers:
http://1passwd.com
Reply
alangenh said 9:58PM on 10-31-2006
You might want to look into the "gmail manager" Firefox extension. For me, this solution is much better than keeping two different browsers open so I can check two accounts easily.
Reply
HazKid said 12:51AM on 11-01-2006
"Unfortunately, to some Mac users, even the slightest imperfections can incur our wrath." Such as the non-unified Preview and Image Capture and Activity and Keynote and Pages and TextEdit. The first thing I do when I get a new Mac is install the DevTools and change those peky things for good. Unfortuneately, I don't know how to get TextEdit unified. (UNO chrases my system)
Reply
jk said 10:30AM on 11-01-2006
All I know is that as a developer I can't stand freaking Objective C. I'd love to develop Mac apps but Objective C, no thanks.
Reply