Recorded – watch the full episode on YouTube.
When Swift was first designed, how much were you thinking about Swift usage beyond macOS, or iOS, or generally Apple platforms?
Chris Lattner: Well, I would say most of the thought was on that initially. When you start to think about languages, languages by themselves in a vacuum are really very abstract things. You have things like expressions and types and statements and syntax, and none of that really by itself ties into the platform. You need to add two numbers? Well, that should work the same on every platform.
In the case of Swift, I think it was really in the 2013 timeframe, so three years into development, where we really started pushing on let's integrate it with the Apple platform, let's make it not just about integers and strings and stuff like that, but let's make it about talking to UIWindow
or UIView
and things like that, and let's really make it talk to the framework. And talking to the framework was a whole other level of problem, which is not a theoretical abstract pure question – it's a completely concrete, grounded, grungy, nasty question of having a huge established thing, how do I move it into shape to where we can talk to it and import it and work with it, and it can feel more or less natural or as natural as we can make it within Swift?
I think that work even went into the Swift 2 timeframe, where if you were around back then you remember auditing nullability and new attributes every month to try to make it so that Objective-C API is imported better. And the great renamification that happened in Swift 3. There's a lot of places where we're trying to really take this massive, valuable set of frameworks and pull them into a view that looked good and natural and worked well for Swift developers.
This transcript was recorded as part of Swiftly Speaking. You can watch the full original episode on YouTube, or subscribe to the audio version on Apple Podcasts.
SPONSORED Take the pain out of configuring and testing your paywalls. RevenueCat's Paywalls allow you to remotely configure and A/B test your entire paywall UI without any code changes or app updates.
Sponsor Hacking with Swift and reach the world's largest Swift community!
Link copied to your pasteboard.