Category Archives: Opinion

Objective: Copland 2010

As is our way, like all nerds before us and all the nerds to follow, it is that time where we take a look at the future of our toolset and gnash our teeth.

Ash Furrow kicks us off this time with, “We Need To Replace Objective-C”. Steve Streza follows up and expands in his piece, “Replacing Objective-C and Cocoa”. Brent Simmons then weighed in “On Replacing Objective-C” with his thoughts.

The root of this discussion is best crystallized by John Siracusa’s Avoiding Copland 2010 from back in 2005 (just 35 years after the start of the Unix Epoch). Back in 2011, Siracusa rekindled his argument on an episode of his podcast, Hypercritical. I wrote a follow on piece to Siracua’s episode: Regarding Objective-C & Copland 2010. Personally, I think this entire debate should just be called, “Copland 2010″ because it puts it all in perspective. Here’s a photograph of Siracusa and myself from 2005 soon after he’d posted his original article.

My issue isn’t with the basic premise that if our toolchain stagnates then so does our chosen platform. My issue isn’t with many of the specific suggestions as to what needs improvement. And my issue isn’t with the timeline of doom, the perils of prognostication and it’s certainly not with the authors.

My issue is that I increasingly feel as if we’re being an incredibly poor client approaching a design agency.

We come to the table demanding certain fonts, colours and shapes but we’ve not identified what the actual problem to be solved is. We’ve come with a set of solutions. Each solution fits our notion of what’s wrong and how it can, should and, indeed — must — be implemented, immediately, or we face irrelevancy.

What we want to do is to describe our fantasy gown to wear to the ball, not how the stitching must be applied. Let’s try to communicate what we need at a higher level so we can actually understand the problem space rather than working backwards from the proposed solution space.

In the future our software will need to concisely express operations that may take seconds to complete, if ever, and must do so within strict security boundaries while exploiting the full compute power of the host device.

That’s what our software needs to do. That one sentence captures much of the Copland 2010 argument. Pretty much anything else is venturing off into the weeds. What does concisely mean? What do strict security boundaries entail? Express operations – functionally? (but, still expressed as imperative?) Compiled but concurrent and functional? What if recompiling on the device can use some sort of other computational asset?

My issue is that listing fashionable solutions is small and myopic yet wrapped in the grandeur of a call to revolution.

Define the problem space and attack it.

That’s what design is. You don’t get to pick, “I’m BLUE!” and then make it work. The problem finds you, and then you fix it. All the noise is a string tied between a doorknob and a bad tooth.

Ok, we could automate that. But can we do better by better understanding the problem?

Some Notes on Scriptnotes

Scriptnotes is a podcast hosted by John August and Craig Mazin which focuses on the craft and trade of writing screenplays. I’ve been an avid listener since I first discovered it a few years ago.

I love listening to this show because its like peering through a window into a Bizarro universe where your job isn’t to write software but to write screenplays. The remarkable thing, I think, is that they’re more aware of that interplay than our industry seems to be.

Turns out Scriptnotes has published the most essential conversation that you, as software developer, must listen to.

(sponsor break for “Big Fish: Hungover Monkey” off broadway. reading note: “tear jerker”)

The topic is Final Draft 9 and the reactions the Scriptnotes hosts have, particularly those expressed by the usually reserved Mr. Maizim. If you write software and you have users then you should listen to this conversation.

From a technical perspective, just appreciate that words like Cocoa and Carbon are being thrown around. Appreciate how a business guy is trying to communicate the weight of transitioning a giant customer base from an aging code base. Appreciate how the customers are demanding quicker responsiveness to technological changes.

The greater lesson, I believe, is never get left behind.

  • Guy

Thank you John August @johnaugust and Craaaaig Mayzen @clmazin for putting on a show that’s so dedicated to craft that it … transcends? breaks out? exceeds? … Whatever. You’re the pros. It’s worth listening to while you pheal potatoes.

The Record

My friends Brent Simmons and Chris Parrish have launched a new podcast called The Record. The first episode is an interview with another friend of mine, Luke Adamson, covering how he got into the software racket and his time during the NeXT and early OS X days of The Omni Group. Luke is one of those guys that’s been around for ages but you’ve probably not heard from often. He’s got some great stories and it’s terrific that Brent and Chris opened their new show with him as the guest.

There’s no lack of podcasts these days, and more are added regularly, but that doesn’t mean there’s not an audience for niche shows with specific goals in mind. The goal of The Record is to capture the early days and growth of the Apple developer community. Smartly, they’ve decided to break the show into seasons each focusing on a different aspect of the period. The first season focuses on the Seattle scene before the introduction of the iPhone. I think you’ll be surprised as just how much of an influence the Seattle crowd has had on the greater Apple development community. The Record has a bunch of great guests lined up and I’m really looking forward to following along.

If you enjoy listening to Debug then I think you’ll find The Record to be a terrific companion.