Apple's new Era
Moved this blog from Wordpress to Jekyll.
It’s been more than a year since I last posted here. In the meanwhile, I finally got around to ditch Wordpress and converted the blog to Jekyll. It reminded me of my Linux days : sparse doc, bare bones packaging, lots of googling around to find how to do basic stuff. Ok, the Wordpress importer may not be trivial in itself, but they really could improve the packaging of the themes. That said, the end result is rather satisfying, no more worrying about mysqld having crashed or my Wordpress site having turned into a spam-spewing bot (ok that one was just one time, long ago). I guess I ended up close to what I hoped for 3 years ago, except Jekyll is Ruby-based and serves static pages (which I think is the best strategy for most sites, especially those like mine).
WWDC 18 and next
I usually blog my thoughts on each WWDC, that one didn’t leave me with much to say… Retrospectively it was just Apple iterating over iOS, macOS, and Swift, and then the iPhone, iPad and Apple Watch during the September keynote. I upgraded my old iPhone 6S to a XS, meaning I’vee moved to a 3-year replacement schedule, which feels more adequate to the state of things now, which brings us to…
Apple’ss next phase
The really interesting announcements came much later after WWDC18 or the September keynote, they came on March 25th, 2019. Many long time Apple fans found it boring, but it was actually revolutionary. Not for the industry, but for Apple itself. They’re clearly moving from a purely hardware company (with software and services as a reason for users to buy their hardware), to a services company. Well, they’re still a hardware company too, it’s just that services are getting a much larger part. As the rest of the industry has been doing for a while now, they are moving to subscription-based offers, something one could think they had started a few years ago with the iPhone Upgrade Program, and then with Apple Music (or even iTunes Match before that). The revenue from the Services segment of their business has been growing continuously for years now, and with the inevitable stagnation of iPhone sales, it’s only normal that they’d move to a steadier, more predictable form of revenue. Increasing the price of the iPhone (now way too high for most people) can only work so far. It’s also quickly alienating some customers and turns their image of a luxury brand into a caricature.
So Apple needs to make their hardware more durable, as people are no longer feeling the need to upgrade so often. The difference in everyday use between a current iPhone and one from the previous year is hardly perceptible, all of the “big” features are in, all that is left are small incremental improvement on things like camera and overall speed, and some new cool features like FaceID (this one really feels magical). The same thing applies to Macs, but here Apple will have to fix the bad impression left by the macbook keyboard fiasco, and by the fact that Macs are now impossible (or very difficult) to upgrade. My 2008 Mac Pro is still running (now being essentially an iTunes library server) more than 11 years after its purchase in large part because I could upgrade it over the years (memory, HDs, and graphic card).
This year’s WWDC was the continuation of the March event, from the engineering side. Apple’s moving on from iTunes and Objective C to Apple Services and Swift. Moving from the technological roots of NeXT and the business model of iTunes and single-time purchases, to Swift and services. The point of a fully Swift-based platform is not just to have Swift for its own sake but to be able to write code for all of Apple’s platforms easily and efficiently. To quote iOS dev David Smith «What we have been given is a consistent, clear vision for the future of development across all Apple platforms. From a tiny 38mm watch to a 32” Mac we can use a common set of tools & code. Truly incredible.».
Beyond the impressive technological feat, what is reassuring is that Apple is listening and sticking to its usual way of doing things : taking its time to provide long-term, wide solutions instead of many quick short term fixes. In particular, a long-standing bug for something obvious in an app indicates a large-scale fix, that is the app is being rewritten or replaced, that was true for Aperture and Photos. We probably can infer that the lack of proper podcast sync in iTunes was because iTunes is being dismantled into Music/Podcasts/TV.
In that same trend, I had been expecting for years that Apple would port Cocoa bindings to iOS, instead they created a wholly new and better solution, much closer to the state of the art embodied by Rx than a Cocoa bindings could have been. SwiftUI and Combine really make coding for Apple’s ecosystem much more exciting than it’s ever been. I’m really looking forward to use those. And yes, they’ve been brewing this one for years, as what was to become SwiftUI apparently predates Swift in concept.
One reservation I would have is about Swift’s complexity compared to ObjC. ObjectiveC is a simple language, coming from C or C++ it can be learned in a few hours. The subset of Swift that would be equivalent to ObjC is actually simpler than ObjC in that it’s cleaner and more consistent, given that all the C bagage we’re so used to see is not there. So for a complete beginner, Swift is easier to learn, yes, but to get into the “cool new stuff”, like RxSwift, Combine, or SwiftUI, you immediately have to deal with very advanced features. Not so much when coding on the proverbial “happy path”, but stray from it and any error message will be very cryptic, and knowing about these features will be necessary to understand what’s going on. In the long run, I’m not sure how that will work for newcomers. ObjectiveC is simple and very forgiving, Swift is more complex and doesn’t have to be so forgiving because the language has checks for the most common errors, so you get told immediately in case of problems. Which one is more welcoming ? I guess time will tell.
But in any case, Apple has definitely entered Swift’s Era.