This is one of the best WWDCs that I have ever seen if not the absolute best to date. I don’t say that lightly. Coder Radio know what I have been fairly critical of WWDCs and past apple events in general over the past four or so years. This time they nailed. Sure the Mac Pro is way too expensive and a ridiculous amount of overkill in terms of power for most developers, but it exists. However, I think it stole the show a little too much. Here’s three things you might have missed that will impact most developers working on macOS or iOS day to day that were mentioned during the keynote or shortly thereafter.
Bye Bye BASH: That’s right. Starting in macOS Catalina Z Shell (ZSH for short) will be the default pre-installed shell on macOS going forward. Luckily most of the commands in ZSH are identical to their BASH counterparts. However, there are still probably going to be some cases where heavy command line users are going to need to modify their existing shell scripts. This could also be a hassle for developers who use macOS to administer and work with Linux servers, that generally have BASH as their default. However, with the hassle comes some good. In particular, ZSH has better autocompletion and also has some handy case correction functionality that might not sound like a lot but in practice is pretty helpful to those of us prone to typos. If you don’t like ZSH, you’ll be able to go back to BASH, but I’d encourage you to give it a shot.
SwiftUI: Many iOS developers have already been doing reactive programming in Swift using libraries such as RxSwift. Apple is now embracing that trend with SwiftUI which will undoubtedly increase the popularity of functional reactive patterns and reactive programming as a whole. This is probably not great news for RxSwift and third-party toolkits like it, but it is great to see iOS coming current with the latest development paradigms that have been popularized in front-end web development. For long-term Cocoa developers, now is the time to get on the reactive programming bandwagon, since it seems likely that SwiftUI is going to be the preferred UI development technology. It’s important to note that SwiftUI only supports Swift, making mandatory the transition from Objective-C.
Twilight of UIKit, AppKit & Objective-C: Admittedly, this is a bit hotter of a take than the two above but I think that with SwiftUI and the end of 32bit support on macOS and the swirling rumors about ARM Macs being just a year or so down the pike, the end is nigh for traditional Cocoa development. This isn’t going to happen overnight but at this juncture beginning projects in anything but Swift is going to be challenging. My hope is that this is only for the UI layer to start and we will still be able to utilize Objective-C and Cpp libraries and other dependancies for the foreseeable future. If that’s not going to be the case, there is going to be a lot of code that is going to need to be ported to Swift very soon. Still, even in the worst case, this type of creative destruction is necessary to keep the platform fresh, something that Apple has struggled to do up until this release.
Let me know what you think on Twitter. Anything stand out in particular to you in the keynote?