I just spent this weekend at CocoaConf in Seattle, and it was great. From Daniel Steinberg’s Swift Kickstart, to Gus Mueller and Chris Adamson discussing Core Image, to Paul Goracke’s CoreData tips, there was a lot of technical content I can apply directly to either my day job or my side projects. It was also neat to finally meet some people I had previously only known through their twitter avatars. But I think the real personal value I got out of CocoaConf this week were a pair of keynote-style talks from the Khan Academy’s iOS developers.
First was Andy Matuschak’s Value and State: Functional and Imperative. I have been aware of a growning functional programming community for a while, but as with any new movement the die-hard extremists killed any enthusiasm I may have had into looking into. Plus, my cave-man brain actually LIKES C and C++, and one day I may finish the half-written post about why higher-level languages are hard for me. But Andy did an excellent job of breaking down what object and value types are useful for, and why separating action from logic is an important goal. He didn’t try to convince the room that we should write everything in a functional style (you can’t write useful software that way). Instead he advocated splitting objects into a thick value layer, and a thin imperative shell to handle responding to inputs from the system and tracking the change in versions of the immutable value layer.
The night before I had an idea for a new iOS side-project, and I had planned on starting in Objective-C, and sprinkling in Swift whereever it made sense. That is not how I’m going to learn and grow. Instead, I’m starting in Swift, and I’m only going to break into Objective-C when I can’t get something done in the current version of Swift. I with the standard library being almost entirely value types (structs), it will help me design my own software to act in a more functional way, without jumping whole-hog onto the crazy train.
As an asside, Brent Simmons had spoken the night before about (not) shipping Vesper for the Mac yet, but gave an impassioned arguement on why we should be writing Mac software. So this new side project is going to be written in Siwft, on iOS and Mac.
Finally what hit me the most was Laura Savino talking about being ANGRY at bad code, and how unhealthy and damaging that is to our relationships with other people. I have much more to write about my personal struggles with code hate, so I plan on breaking that out into a separate post instead of squeezing it in here.
Beth, Sam, and I are heading out tomorrow for a little vacation this week. I had planned on bringing 2 laptops and getting started on both my new project and some work-work I didn’t finish before CococaConf. Instead I’m going to leave them both at home, delete Tweetbot and Facebook, and spend a little time in reality. If you really need to get ahold of me this week just call instead.