© 2020 Strange Loop
In 2014, Apple began the long process of replacing Objective-C, the platform's primary language for fifteen years. Swift's feature set takes cues from many modern languages, but high-quality interoperation with Objective-C was a primary concern: massive codebases weren't going to be rewritten overnight.
The Swift-Objective-C bridge has significant design impact on the language and significant engineering ramifications for anyone incrementally adopting Swift in an existing project. This talk will address both topics.
First: what is the weight of the Objective-C bridge in Swift? How much complexity was added? Which elements disappear when Objective-C is not in use, and which remain?
Then: a report from the trenches. We'll cover the features which caused the most impedance with a large existing codebase, approaches which permitted harmonious gradual adoption, and the adoption benefits seen in practice.
Andy Matuschak leads mobile engineering at Khan Academy, where he's creating an educational content platform that's interactive, personalized, and discovery-based. Prior to that role, Andy helped build iOS 4.1-8 on the UIKit team at Apple, focusing on multitouch, rendering, and platform architecture. More broadly, he's interested in software architecture, computer graphics, epistemology, and interactive design. Andy and his boundless idealism live in San Francisco, primarily powered by pastries.