Writer's block

Depending on your perspective, I’ve been lucky or unlucky enough to always have to write for a living, be that English language as a journalist or today at IMG where communication of my work is key, or myriad programming languages as a hacker. Whether my reader is a human being or a computer, I’ve always had bouts of writer’s block.

Usually it resolves itself quickly after I remove myself from the process and take a step back to think about what I’m really trying to say. Printing out the words or codes to read away from the computer screen in a different setting with different mental context often works. Good old fashioned paper and pen, rather than the keyboard.

Sometimes it’s completely debilitating, though, and I’ve never had a good remedy for those situations. It tends to manifest at the very start of a new piece of work, too. With programming that means the start of learning a new language or a new programming system, where there’s inherent complexity and I have to figure out what the primitive building blocks are before I can make progress.

I’ve lost count of the number of times I’ve launched Xcode, started a new iOS project and got as far as mocking up the UI before my brain says nope and packs in. I know Objective-C. I know Xcode. I grok the iOS client libraries. But can I get into the flow of designing an app and then writing the code that glues it all together? Absolutely not.

My brain is happy working on most of my C or Clojure or Ruby programs and I don’t have a problem with any of my other tools or workflows used to put programs in those other languages together, because I know there’s an inherent simplicity to everything.

There’s a fundamental complexity to the way you’re asked to construct an iOS app with Interface Builder that puts me off. The visual connection of UI item to code method, where Xcode is looking for signature matches to see if your method can handle what’s going to happen, isn’t simple and obvious.

I may get mocked until the end of time for saying so, but Visual Basic 6 had a better UI designer and more easily connected you to the underlying code. I never felt boxed in or actively discouraged from programming when using those tools many moons ago.

Why am I writing this? I’m about to do it all again. I hope it all clicks this time and I can get past the complexity that triggers my programming writer’s block.