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
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.