RWDevCon 2017 Inspiration Talk: New Tricks by James Dempsey

In this talk, James explores how he thinks about and works through the many major changes encountered along the way – like transitioning to Swift. By Andrea Lepley.

Leave a rating/review
Save for later

We recorded these talks so that you can enjoy them even if you didn’t get to attend the conference. Here’s one of the inspiration talks from RWDevCon 2017: “New Tricks” by James Dempsey. I hope you enjoy it!

Note from Ray: At our recent RWDevCon tutorial conference, in addition to hands-on tutorials, we also had a number of “inspiration talks” – non-technical talks with the goal of giving you a new idea or some battle-won advice, and leaving you excited and energized.


We’re gonna talk about some new tricks today. That, obviously, comes from the old adage: you can’t teach an old dog new tricks.

We’ll get to the old dog part in a moment but, just so we’re all clear, what do I mean by a trick?

Really, I’m just talking about any skill, any capability, like: I can hook up a table view, or I can write a generic function in Swift. At this conference, you’ve been pretty much learning new tricks the entire time.

As I was thinking about this talk and looking at the dates, I realized that I’ve been doing this stuff for a while now. It kind of creeps up on you.

And I was thinking: it’s 2017. What was I doing in 1997? 20 years ago. It’s still surprising to me that I’m able to say I was doing anything for 20 years.

Well, I was working at a struggling technology company:

It’s hard to imagine an Apple that’s not like this behemoth. But things were tough at Apple in those days. Apple had just finished the purchase of a smaller struggling technology company, and that technology company had an operating system called OpenStep, which ended up being the underpinnings for Mac OS X and then later iOS.

At the time of that purchase, the first I ever heard about the development environment, and the first I ever heard about Objective-C, was from Steve Jobs. He talked about it—I believe it was part of the merger press conference and I’ve been looking for that footage because I know I’ve seen it, but I wasn’t able to find it. But he described Objective-C as taking this ubiquitous language C and then adding this powerful dynamic object-oriented layer on top of it using a syntax inspired by Smalltalk.

As somebody in the Apple community at that time, I was very excited about that. Couldn’t wait to get rolling. With the advent of Swift, we now know Objective-C has an oddball kind of syntax, but in that reality distortion from Steve Jobs, I was gung-ho about Objective-C and I still enjoy Objective-C.

I was so gung-ho to get rolling … I was in evangelism at the time and we had kind of a comparison lab where we had some Windows machines, and I commandeered one of them and got somebody from Next to install OpenStep so I could start writing for this platform that was going to be the future of the Mac.

This is pretty much the first Objective-C code I ever wrote. It’s from the currency converter and I was thrilled. I was learning lots of new tricks at the time.

And so over the last 20 years, I’ve been working with these frameworks. First in Objective-C doing foundation stuff, target action, these kinds of concepts. Objective-C, now in Swift, even a side trip into Java. Yes, back in the day, there was a bridge to access the frameworks through Java. And I was thinking in the past.

It also got me thinking about the future.

Thinking about my experiences in the last 20 years, I was also reflecting on how to handle the years to come. There’s another story I’d like to tell you. Something that really stuck with me through the years.

We’ll go halfway between. We’ll go back 10 years, to 2007. This is 10 years after the Next acquisition.

Just a little Mac history to set things up; there were two ways to write Mac apps on Mac OS X:

There was Cocoa, which was essentially those OpenStep frameworks brought over to Mac OS X, and there was Carbon, which is the original Mac APIs, modernized and brought over to write apps on Mac OS X.

At this time, the Mac was moving to 64 bit. So writing 64 bit apps was important, and at WWDC 2007, Apple announced that only Cocoa would be 64 bit. Essentially saying that Carbon in the long term was pretty much dead.

And so at this WWDC they had a session: Cocoa for Carbon Developers.

It wasn’t so much the session—I always like seeing the basics of something explained in different ways—it was the Q&A after the presentation that really stuck with me.

It was clear from the questions being asked and the comments being given that even after 10 years of Apple saying things like, “If you’re going to start a new project, we suggest you use Cocoa,” it became very clear that many of these folks had not given Cocoa a single look, even after an entire decade.

It kind of felt like I was in a pond that was shrinking and the fish were in the pond kind of flapping around a little bit and they may have waited too long to get out of the pond somehow.

That session made a very big impression on me; I realized I never want to be in that position. Especially in technology where, even 10 years in, you’re holding onto the past and you’re not looking forward to the future.

A few years ago, for somebody who at that point had been writing Objective-C code for 15 years, it was another moment where I felt a little bit like those Carbon developers. I’d been working in an environment for a while. I’m proficient in it. I’ve been writing apps in it for a while, but now here’s this new thing.

And I don’t need to move immediately. I can keep writing Objective-C, but I thought back to those Carbon developers, and I don’t want to be like that 10 years from now.

Obviously, I jumped on the Swift train and it’s been fun learning it year after year.