Thoughts on WWDC 2016 Keynote

So, we had the keynote for WWDC 2016 (which I watched from home, having not won the lottery to go this year). Overall, it was somewhat “meh”. No hardware, just software. The presentation lacked Apple’s usual polish, and it stumbled a few times. The final part was possibly the most interesting.

Finally, It is macOS

Apple finally woke up (about 10 years late) and changed “OS X” to “macOS” (for the same reasons I discussed recently). It’s about time. Calling it OS X (“Oh Ess Ten”) was just too awkward, bordering on silly.

They are sticking with using California landmarks as a naming theme (although “Sierra” isn’t a single “thing” by itself. There are the Sierra Nevada mountains, but “sierra” is also just a word. Whatever). But at least the name isn’t as unwieldy as it has been.

About The Presentation

Before briefly touching on features (and it will be brief), I wanted to talk about the overall event. Generally, it was only “okay”. The highlight was Bozoma Saint John. That lady rocks. She was funny, engaging and entertaining. And while I admire Cook’s bravery at putting other Apple employees on stage, the result was mixed in my mind.

Frankly, the polish and near-perfection of the Jobs-era presentations is pretty much gone. Presenters stumbled with their lines. Some had to repeat them as they got lost. Words got dropped, changing or losing the meaning (seriously Eddy, Apple Music is the “fastest growing music service”, not “the fastest music service”). It looked a bit amateurish, and with a lot of cast changes, felt rushed. It didn’t feel urgent, as in “this is so exciting”, it just felt like they were rushing through as fast as they could.

Seriously, cut back on the cast. Steve used to do almost the entire thing by himself. Get it down to 2-3 people at most, and don’t have people come and go and come again and go again. Come up, do your thing, leave. It needs to tighten up, the presentation needs to be more streamlined, and it can’t look like they are trying to stuff as much as possible in 2 hours.

Features, Features, Features

As usual, a lot of features were described and demonstrated. Most were “okay, interesting, but seriously, move along”. There were some bits where I got up to get a snack or a drink. Craig spent waaaaay too long going on about Photos. The bit about Messages was far longer than it needed to be, although some of the new features will allow a bit more “emotion” to be communicated.

It was nice to see that developers will get expanded access and more features for building Watch apps. How well they work remains to be seen, but having direct access to gestures and other inputs is a welcome addition.

Overall, though it was basically “hey, we built a bunch of stuff”. There were two real highlights: the reworked Music app and Swift playgrounds. For music, at least they finally (finally!) realized that not everyone wants to stream everything from their mobile devices. I drive in places were data access is limited or non-existant. When I’m outside of Canada, I’ll turn data roaming off entirely. I put music on the damn thing, I want to see it and nothing else, without the app treating it like some kind of weird exception. They finally fixed that.

Swift On The Go

The most intriguing part was at the end (Tim’s “one more thing” moment), with Swift Playgrounds on iPad. I don’t see hardcore developers building complex apps on their iPad right away, but by starting something on that path, it might get people thinking differently about how we design, write and maintain code.

Let’s face it, the basics of how we build software today isn’t lightyear’s different from how it was done 30+ years ago. Sure, we’ve got IDE’s and code completion and real-time syntax checking. But, we still do a lot of “type a bunch of stuff, compile, run, watch it break, go back to typing”. The details have changed, but the basic approach used today is the same one I started on back in the early 1980’s.

By having to support writing software on a device with more limited input and display capabilities, it potentially changes the conversation. Take away the physical keyboards, the high-precision pointing devices and big screens, and you have to think differently about how to do the job (and “think different” was an Apple tagline for a number of years).

Start Simple And Build

Swift Playgrounds starts with the simple stuff: learning to code. That doesn’t require managing thousands of lines of code and hundreds of classes. It doesn’t need to worry about multithreaded implementations and data synchronization. As a result, it starts simplistic. But remember, we used to build and maintain massive amounts of code using nothing more than a 24×80 ASCII terminal. An iPad is far  more capable than that. Starting simple is good. Rather than trying to get to a destination (that isn’t really defined) in one push, we can start small and see where it goes.

Would I want to write complex software on an iPad? My instinct is to say “no way”, but that’s as much out of habit as anything else. I’m prepared to wait and see, and watch where this goes. Who knows, a combination of sophisticated tools on a tablet, coupled with back-end tools out on the cloud could change the fundamentals about how we think about building, testing, releasing and maintaining software.

I see vague visions of the future where this might work, even for something requiring teams of people and hundreds of thousands, possibly millions, of lines of code. Who knows, it may lead to useful and meaningful changes in how we do our jobs. There were a lot of detractors when the Macintosh first came out (and still plenty of people that think a command line should be good enough for everyone), but few “normal users” would consider anything but a graphical user interface. Change of this magnitude can take time. I’m curious to see where it goes.