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
2020
2019
2018
2017
2016
2015
2014
2013
2012
2011
2010
2009
2008
2007
2006

Categories
Business
Software
General

Privacy Policy

Site design: Skeleton

 

Mon, 26 Nov 2007

Cocoa hell

Bloody hell. Cocoa isn't any easier than Carbon.

I've been working through the Bible of Cocoa programming, Cocoa Programming for Mac OS X by Aaron Hillegass. Hillegass is a good writer, and he tries mightily to make the Cocoa frameworks accessible. But they are difficult and complex. What makes them even harder to learn is that my heart simply isn't in it: I have no interest in Cocoa apart from what Apple has coerced.

I have become so productive with Tk as a GUI programming framework, accessed from the Tcl and Python programming languages, that I'm quite content to continue working in that vein. The programs I've developed in these languages are non-trivial. Porting them to Cocoa not only requires me to learn Cocoa, but to unlearn my present means of working. And this holds true whether I access Cocoa from the low-level Objective-C language or use a higher-level wrapper, such as PyObjC.

So instead of marching through Cocoa hell, I'm saying: to hell with Cocoa. I'm not rewriting my programs, thousands of lines of stable, debugged code. I'm sticking with Tk.

Of course, this doesn't alleviate my earlier concern that Tk is built on top of Carbon. Other cross-platform toolkits using Carbon have outlined plans to integrate Cocoa. Not so for Tk, at least not yet. I feel bad that I don't have the low-level chops to contribute toward porting Tk to Cocoa. I will instead release as open-source some of the Tk code I've developed recently to improve the Mac look-and-feel of my programs: that way others can benefit from the work I've done.

Based on a recent mailing list thread, I have faith that Tk will continue to evolve to the degree necessary to remain a viable development environment on OS X. I may not have the skills to ensure this, but others do. Tk may never be cutting-edge, but that's OK.

[/general] permanent link