I’ve spent the past several days learning how to hack things together on my iPhone. For quite some time, I’ve stayed as far as possible from C++, and I was expecting Objective-C to be equally horrible. Quite frankly, I was 100% wrong. Granted, I’m not doing anything advanced yet, so it’s quite possible I’m still in the naive phase of language learning.
Unfortunately, my current project involves some manipulation of photos. And, since I have an iPhone 4 (fancy!) the photos are pretty high resolution. I’ve also discovered that the iPhone SDK doesn’t have a very robust image manipulation (read: effects of any kind) library. So I’m stuck implementing the grimy part in C++. Yuck.
It’s been pretty educational so far. We are what we repeatedly do, and I’m certainly not a low level coder. Python has been my language of choice for the past several years, which means I (generally) don’t have to worry much about overflowing buffers or forgetting to deallocate memory. Richard Feynman had some quote about seeking the highest breadth of experience, not just in science but in any pursuit. Jumping from Python to Objective-C certainly isn’t as bad as I expected (and I still find myself loathing C++), but it’s a big enough jump to remind me not to forget about the incredible number of avenues software offers. Hopefully my eyes will see the ever-elusive secret to good software design. If anything, it’s more data for my neural network to “train” itself
Also, I’ve decided I want a kindle. I’m going to use that as a good revenue goal for my new project.