Monday, April 19, 2010

New Directions

I just realized it's been months since my last blog post. MONTHS! Astounding.

I've been busy, but not with writing, although I've managed to eke out three chapters in the rewrite of "The Book of the Talents." Most of my attention has been on learning iPhone and iPad programming.

I've been wanting to learn to program the Mac since the early 90's. It used to be a lot more complicated. You had to learn the Mac Toolbox and write programs in procedural languages like C, and the limitations of the OS made debugging and fixing them difficult. Although I did manage to write a couple of programs under the old Toolbox, I never enjoyed it. My job required me to spend more time in scripting languages like AppleScript and Perl, so I focused my efforts there.

My current job at Zvents is to support a data center and developers who write code in Ruby on Rails. Ruby is an object-based scripting language, and Rails is a framework for developing and maintaining web applications. You write applications using a design metaphor called "MVC," which stands for model, view, and controller. Simply put, the data, appearance, and business logic of the programs are separated out into separate modules, which makes adding new features and capabilities much easier. MVC programs are more maintenance-friendly. They're also much easier to understand, once grasp the logic behind the way they're structured.

It turns out that learning Ruby on Rails programming was an excellent prelude to learning how to program the Mac, the iPhone, and the iPad. Since Apple was acquired by NeXT (ha ha), the original clunky Mac OS was replaced with a successor to NeXTStep. Mac OS X programs are also written as MVC applications. That makes learning them far easier.

Since the announcement of the iPad, which I think will ultimately be a giant success for Apple (assuming good programs are written for it), I've been thinking hard about finally learning how to program it. In the last couple of months I've made big strides. I first studied Objective-C, which is a superset of the C language, which I already knew, although it had been quite a few years since I programmed in it. Then I moved on to an iPhone specific programming book by Dave Mark and Jeff Dalrymple. Great move. I'm now just about halfway through that book, having keyed in all of the sample programs, and I feel like I'm actually over the hump when it comes to understanding how Mac programs are structured.

Conveniently and not coincidentally, the same set of development tools is used for all three of my prospective platforms, although there are many differences in the libraries and frameworks used for each platform. They're fundamentally the same kinds of programs, though.

I'm focusing on iPhone programming at the moment, and I have a couple of ideas for useful applications. It's an interesting time to be an iPhone developer, considering the advent of the iPad and the impending summer release of iPhone OS 4. I have an iPad on order and am looking forward to using it as much as I am programming it. I hope it will be both interesting and profitable. At the very least I'll have learned a valuable new skill.

In the meantime, my book is on hold. I have to admit my enthusiasm for it has waned a bit. I have been thinking a lot about writing the back story to my previously-envisioned trilogy. It would set the stage for the other books while remaining a much more self-contained story. I would want it to be a satisfying read as a standalone. If it were successful, then I'd rewrite "The Book of the Talents" using "Lorian's Tale" as a springboard.

OK, back to work learning iPhone programming. See you in another few months.