Accidental Tech Podcast
Accidental Tech Podcast

ATP Interview: Holly Borla & Ben Cohen

* Holly Borla: Swift Language Engineering Manager * @holly on Mastodon * Ben Cohen: Senior Software Engineering Manager, Swift Team * @airspeedswift on Mastodon

Featured Speakers

Marco Arment, Casey Liss, John Siracusa HostBen Cohen GuestHolly Borla Guest

Topics Discussed

Episode Summary

Executive Summary: Apple Swift managers Ben Cohen and Holly Borla discuss Swift 6’s strict concurrency, the language’s gradual move toward self-hosting in Swift, and how open development, better keywords, and progressive disclosure make advanced features approachable. They emphasize incremental migration from older concurrency systems, compiler-enforced safety, and the community’s role in shaping language and framework design.

Main Topics: Swift 6 strict concurrency and data-race safety: The conversation centers on Swift 6’s compiler checks for concurrency correctness, especially preventing data races and guiding developers toward safe patterns at compile time rather than runtime. Swift compiler self-hosting and rewriting in Swift: Ben explains that the compiler is increasingly being rewritten in Swift, including the driver, parser-related work, and optimizer passes, with the long-term goal of a self-hosted compiler. Incremental migration from legacy concurrency primitives: The guests stress that existing code using dispatch queues, locks, Objective-C, and C interop can migrate gradually, using tools like custom actor executors, pre-concurrency imports, and opt-out annotations where needed. Open-source development and Swift Evolution: They describe Swift’s open proposal process, forum-driven feedback, and iterative review of APIs and keywords as a major advantage that improves language design and clarity. Language design, naming, and progressive disclosure: The speakers argue that keywords and naming matter deeply for learnability, and that Swift’s design aims to expose complexity only when needed, keeping the language low-ceremony but not obscure. Cross-platform Swift and ecosystem growth: Ben highlights progress on Linux, server-side Swift, package adoption, Foundation unification, and editor support beyond Xcode, showing Swift’s expansion outside Apple platforms. Teaching concurrency and reducing barriers for newcomers: Holly explains that Swift concurrency is designed to be approachable through compiler diagnostics, main-actor defaults, and compile-time guidance, making advanced concurrency easier to learn safely.

Key Arguments: Swift 6’s strict concurrency checking is meant to catch data races at compile time, making concurrent code safer and easier to learn. The Swift compiler is gradually being rewritten in Swift for safety, approachability, and eventual self-hosting. Developers do not need to eliminate dispatch queues or locks to adopt Swift 6; incremental migration is the intended path. Open review processes and community feedback materially improve Swift features, documentation, and naming choices. Good API and keyword naming improves learnability and helps users understand concepts faster. Swift should remain low-ceremony, but advanced features must still surface enough information to prevent ambiguity and bugs. Compiler-enforced concurrency checks are preferable to runtime crashes or hidden data corruption. Many modern Swift features are designed so users benefit from them without needing to understand the underlying machinery. Cross-platform support and server-side Swift are important growth areas for the language. For new Swift programmers, starting with concrete types and let constants is often better than overusing protocols or abstraction early.

Data Points: Swift team compiler rewrite timeline: About 4 years - Ben says parts of the compiler have been rewritten in Swift starting around four years ago. Swift driver rewrite timeline: About 2 years - Ben says the compiler driver was written in Swift about two years ago. Swift mentorship program duration: 10 weeks - Holly describes the open-source mentorship program for contributors. Swift team member background: About 8 years at Apple - Ben says he has been at Apple about eight years. Language mode migration target: Per module/target - Swift 6 language mode is set per Xcode module or Swift package target. Swift package ecosystem tracker: swiftpackageindex.com - Ben references a tracker showing packages that compile cleanly under Swift 6. Legacy compatibility guarantee: Since Swift 4 - Ben notes the source-compatibility promise has existed since Swift 4. Community adoption support: Debian and Fedora - Ben mentions expanded Linux distro support this year.

Pivotal Quotes: "The compiler is not filled with seg faults, but they can happen. And obviously, rewriting parts of it in Swift eliminate that possibility because it's a safer language." — Ben Cohen: Explaining why self-hosting the compiler in Swift improves safety and maintainability. "You should be able to program by bumper where the compiler is there to tell you, like, oh no, you got this a little bit wrong with actionable suggestions for how to fix that code." — Holly Borla: Describing the desired developer experience for Swift concurrency diagnostics. "Start with a concrete type, start with a struct specifically, until you need more abstraction or you need reference semantics." — Holly Borla: Advice to avoid overusing protocols and abstraction too early in app design.

Implications: Swift is moving toward safer, more approachable concurrency and broader platform reach. For developers, this means stronger compile-time guarantees, easier migration, and more predictable APIs. For the ecosystem, it signals continued openness, community-driven evolution, and expansion beyond Apple-only workflows.

🔓 Sign Up for Unlimited Episode Search

About Accidental Tech Podcast

View all episodes from Accidental Tech Podcast