Stopping Time: An Appreciation of Objective-C

I woke up and looked at the clock. 3:15 AM. I had a clear picture in my mind to make something new. It took me the next six months to make that drowsy vision real.

The result was Up Spell, a word game for iOS. But that’s the end of the story.

On that morning, it was April 2020. We were still in the first few weeks of the pandemic. When I had closed my eyes to go to sleep hours earlier, I already knew that my new job at Airbnb had gone off track. I had recently accepted an open-ended role with the company, an opportunity to look around and find interesting work to do with interesting people. Instead, as Airbnb was circling its wagons to figure out how home stays and travel could possibly go on amid global lockdowns, I felt like an odd man out. I left the company just ten weeks after joining.

I didn’t know what to do. That’s why my early morning idea was so appealing, because in that moment, I was sure I had a plan. Creating a word game was appealing notion, since I like word games, and I was reasonably sure I could make one that would be fun to play. But that wasn’t the actual idea. To explain what my real goal was, I need to step back in time.

Back in June 2001, I joined Apple to work on what became Safari and WebKit. Mac OS X was new. It had been released just three months earlier. With it, the commitment Apple had made years earlier to bring NeXT technology to the Mac had finally come to fruition. During my second week at Apple, I attended an internal training program to learn about the Cocoa frameworks and Objective-C, the foundation technologies for Apple’s new operating system. They were the main developer tools for programmers inside the company and those making their own apps to run on the platform.

Over the next fifteen years, I wrote code in ObjC just about every day. The language offered me a small collection of rules on the surface and a deep well of flexibility underneath. This combination facilitated and encouraged quick and playful experimentation. The language allowed me to wink and say, “I know what I’m doing.” ObjC winked back and became a willing participant in helping me make computers do cool stuff.

I made URL loading APIs for the Foundation framework, I wrote the keyboard for the original iPhone in ObjC (with some C++ mixed in for performance-critical work), and I coded the Solar face for the first Apple Watch. So much more too. All in ObjC. It remains one of the best languages ever for creating apps and frameworks. I’ve loved every minute I’ve spent coding in it.

On that morning in April 2020, it was clear to me that ObjC was no longer the future for Apple technology. It made me sad then, as it does now, but I’ve come to terms with it. However, it still seemed possible to do one more project in ObjC before its technological sun set over the horizon. In 2020, ObjC still had full access to everything iOS could do. I could make an app with no compromises in the old style.

Over the next six months, I spent so many enjoyable days programming. While the pandemic was raging in the US and around the world, I wrapped myself in a safety blanket of square brackets. ObjC helped to keep me sane and safe. I shipped Up Spell in October 2020, and while it didn’t sell as many copies as I had hoped it might, that’s OK.

The real idea I had on that morning months earlier wasn’t about making a word game. It was about stopping time, capturing a moment, making the fast-moving world of technology come to rest for a moment, so I could savor one small piece of it one last time before it disappears.

*****
Written on