Code by Kevin
   


About
Code by Kevin: Programming, code, business, and other pursuits

Your Host
Kevin Walzer, software developer.

Home

Subscribe to RSS Feed
Get a syndicated feed of my weblog.

Archives
2008
2007
2006

Categories
Business
Software
General

        home
Fri, 11 Apr 2008

Cocoa roadmap

It seems there is no escaping the ascendancy of Cocoa for Mac OS X developers. Since Apple announced last summer that it was moving its Carbon frameworks into maintenance mode-- with only bug fixes being made and no new features, like 64-bit support, being added--the long-term tides are running even more strongly against Carbon than I realized:

  • The removal of Carbon from the standard library in Python 3, the next generation of one of my core development languages. I only depend on a few Carbon libraries--the ones that support Apple's help system--but having that removed will require some adjustment on my part before I move to Python 3.0.
  • Jason Slack has announced plans to port the GUI toolkit I use, Tk, to run on top of Cocoa--but this will probably break a lot of Carbon-dependent Tk libraries that I and other developers use, and these may need to be rewritten to use Cocoa.
  • Even one of the most venerable Carbon applications, Adobe's Photoshop, is now moving to Cocoa: Adobe has just announced that a Cocoa port of Photoshop is underway. Carbon was first implemented as a transition from the old Mac OS 9 to OS X in large part to ensure the continued support of the Mac platform by commercial developers such as Adobe and Microsoft. Given the size and complexity of applications like Photoshop, it is not surprising that a Cocoa port has not been announced until now; now that it is happening, however, it is hard to see Carbon's days as anything but numbered.

I've kind of halted work on new versions of my program for the time being to improve my facility with Objective-C, Cocoa's foundational development language. It is becoming more and more clear to me that I will have to integrate Cocoa into my work to a significant extent. It is simply unavoidable. Even if I do not completely rewrite my programs from Tcl and Python into Objective-C, it is obvious that I will have to know Cocoa and Objective-C to modify certain components I use. And it is difficult to imagine a single person being able to rewrite Tk Aqua from Carbon to Cocoa without some help.

The question for me is which path makes more sense, in terms of time: learning Cocoa, then rewriting my applications in Cocoa; or learning Cocoa, then rewriting the underlying toolkit of my applications in Cocoa. I don't know enough yet to make that decision. But, one way or another, Cocoa is becoming part of my work.

[/general] permanent link