There are many things to say about WWDC, and I may say some of them in other posts, but the more I look at SwiftUI, the more I like it. Marzipan/Project Catalyst/UIKit on Mac/“iPad apps on Mac” is still as much of a stop-gap money grab as it ever was, but I was wrong to assume that it was the totality of what was up the Cupertonian sleeve.
SwiftUI is in software what so many of the hardware hits have been - a hundred small things that individually have been done before, but put together in a coherent package and seemingly done well. Whether you find precedence in Elm, Svelte, React or WPF/XAML, SwiftUI is an amalgam of sane, well-chosen ideas, mixed with some new ones, like the ostensive compaction of wrapper views down to a sparse and efficient rendered layer. And for once, SwiftUI isn’t a misnomer. It builds on years of wrangling a new language to the place that it allows something like it, like the pervasiveness of a deep and dependable mutability model, without which the checks signed by all the features couldn’t be cashed.
So many of Apple’s decisions, especially for operating systems and frameworks, have been made from a position of weakness and under the pressure of deadlines. If there had been no SwiftUI, this would still have been the biggest WWDC for many years. But SwiftUI looks like it’s been a new idea that’s been allowed to grow and mature; built after a long, hard think, driven by exploration and ideas instead of forced deadlines.
I rhetorically asked for a “Cocoa X” rethink. SwiftUI is only the UI, but it is a fundamental rethink of that problem. It’s additive and incremental, and still looks and feels native, because it is; no iPad-looking concoction transplanted into the middle of your Mac app, or vice versa.
James Joyce said: “History is a nightmare from which I’m trying to awake.” Show last week’s Objective-C code written against the iOS 12 SDK UIKit to a NeXTStep developer, and they might still recognize most things. Code doesn’t rot, but new ideas do come around. It is worth looking back at the past, looking at the timeless gist of the problem, and wondering if, 32 years later, we don’t have a better way to get where we need to go.