WWDC 2014 – Finally!

I’m glad I was lucky enough to be able to attend WWDC 2014. It was a big announcement for developers building within the Apple ecosystem. Also for consumers though, even if by way of many smaller new products, services, and improvements. I was hoping to see some new hardware like many attendees, yet I am glad they are showing signs of better appreciating developers more than in the past few years.

It was fun to see all of the features that catch it up with Android, as well as the improved integrations and long awaited capabilities and APIs that some thought would never come to fruition.

It’s great to see them finally drop the pricing tiers for iCloud storage to be competitive with everyone else. I do wish they’d bump up their free tier, but someone needs to pay for their new massive data centers. All I ask for now is that they’ve improved their quality of service and I believe they already have since their major components seem pretty solid from iTunes to Push Notifications along with the Key-Value store.

The newly announced iCloud Drive is something I plan to test out right away, and I might consider using CloudKit for future developments. They mentioned that iCloud Drive and the new Photos were built on top of CloudKit and I’m excited to play around with this new service. The pricing structure is a little vague, and the service will require lock-in to the Apple ecosystem. I think for smaller apps or custom systems this isn’t a major issue, but it will definitely be a major decision point for any real business. While cross-platform support for a social service is necessary there should be plenty of opportunity to succeed only off the iOS/OSX market, for at least the next few years. Who knows, maybe Apple will open it up more in the future as they are supporting accessing iCloud Drive from the web on Windows.

WWDC is a conference that has often strayed from it’s core definition of being for developers and not the media. This year however they found their way back onto the path and are now sprinting along it in stride. While there was plenty of excitement for many of their announcements the one that received a brief stunned silence and was followed by a collective “What?! (did they seriously just announce that)”. Some of us in the developer community have been discussing for a while now that Apple needs to eventually move to an existing modern language or create their own, but I don’t think anyone expected them to actually announce it for another few years.

Swift is not exactly innovative from an academic perspective as it borrows most or all of its design from other languages, just as most languages before it. The fundamental purpose for creating it was stated in the keynote and that is a language that is “safe, fast, modern, and interactive”. I would also argue that one of the next slides is just as important and that is to have it interoperate and work seamlessly with objective-c (and thus c). It was designed to coexist and work with Cocoa and CocoaTouch so that their entire base of developers can transition easily into using the new language at whatever pace they want.

Learning new languages is something I enjoy, most recently with Go, and previously with the myriad of languages: VBScript, Perl, PHP, Scheme, Python, C#, F#, and of course Javascript. Objective-c does have some respectable design choices as with any other language, but I have only been learning and writing in it for the purpose of publishing into the App Store. Now with Swift I feel like I can use a language I know I’ll enjoy more than ObjC while also allowing me to publish into the store.

Apple is planning to iterate on the current spec through its 1.0 release and is not promising source backward compatibility until such release, as the same with any other language or platform. They will add other language or runtime features in the future where it makes sense, but I expect them to follow the same methodological process they use with everything they make.

I’m pleased with the direction they are going with respect to iOS and OSX both evolving to work well together yet maintain their individual purposes for existing. That said I can envision a time where developers write a majority of their code on an iPad or a device with a laptop form factor running iOS with support for external monitors. Until then I’m pleased that they currently don’t plan to radically change things. Versions shouldn’t matter that much, yet a major point release is usually the indication of more revolutionary changes than evolutionary ones. I believe they’ll move to OSX 11.0  only when they’re ready to do.

Those that I’m excited about include AirDrop between all devices, decreased iCloud storage pricing, and of course Swift.