June 15, 2022·6 min read·engineeringswiftgovernanceevolution

Swift separates language review from wider project stewardship

The new Language Workgroup takes primary oversight of Swift's language and standard library. The Core Team's adjusted role gives coordination across workgroups its own place in project governance.

Reviewing a language proposal and coordinating an entire software project require different kinds of attention. A decision about type inference needs detailed knowledge of compiler behaviour and how programmers understand declarations. Supporting server development or bringing new contributors into the community raises other questions. Swift's new governance arrangement gives these responsibilities more distinct homes.

Ted Kremenek's June 15 announcement launches the Language Workgroup with primary oversight of the language and standard library. The Core Team will devote more attention to overall project direction and coordination among workgroups. Existing Core Team members move into the language group, while its broader membership adds experience in areas including education and developer tooling.

I find Swift consistently well designed. Keeping that quality as the project expands requires enough attention for detailed language decisions without making those decisions the whole of project stewardship. The announced division addresses that tension directly, although its operating charter is still to be written.

The new division of responsibility

The Language Workgroup's remit includes reviewing and guiding language changes, with attention to their strategic alignment. That places both local design detail and the direction of the language within its responsibility. The standard library belongs in the same remit, which makes sense for features whose usefulness depends on library types and protocols as well as syntax.

The Core Team's adjusted role concerns cohesion across workgroups. Kremenek describes its members as stewards who align the groups' efforts and support the project's overall strategy. This recognizes that a project can have technically sound language review while still needing work on participation, tooling and adoption in different domains.

The announcement identifies existing workgroups, including Diversity in Swift and the Server Workgroup, as evidence that the model is already useful. Creating a language group puts language stewardship into that wider organizational pattern. It also lets the Core Team consider the relationship between groups instead of treating every important decision as a language decision.

This is a change in responsibility, not an announced change to the semantics of Swift source. No program acquires a different meaning because a workgroup now oversees review. The effect will come through which concerns receive sustained attention and how future proposals relate to the rest of the project.

Continuity in language expertise

Ben Cohen, Doug Gregor, Joe Groff and John McCall join the Language Workgroup from the Core Team. Becca Royal-Gordon, Freddy Kellison-Linn, Holly Borla, Steve Canon, Tony Allevato and Xiaodi Wu complete the announced membership. The overlap supplies continuity while the added members broaden the experience represented in review.

Kremenek describes Royal-Gordon's work across application development and compiler implementation. Borla brings experience as an educator, an IDE and type checker implementor, and a contributor to generics work. Canon's background includes numerics libraries and standard library contributions. These are relevant differences because a language feature can be sound in the type checker and still be difficult to explain or use.

The membership descriptions also connect library design to specialist domains. Wu contributes to generic integer and floating-point implementations while approaching usability from the broader science community. That perspective matters for APIs intended to be usable by people whose primary expertise is outside language implementation.

It would be premature to infer how any individual will decide a future proposal from those biographies. The useful claim is narrower. The announcement explicitly seeks a balance of expertise and perspectives, and its descriptions show that the group is not composed solely around one kind of compiler work.

Type placeholders show what detailed review involves

Kellison-Linn's SE-0315 on type placeholders, cited in the announcement, supplies a concrete example of the language work involved. Swift's inference can determine much of a type while still needing help with one part. Requiring a complete annotation in that situation makes the programmer write information that the compiler already knows.

The proposal introduces _ as a placeholder inside a type annotation. The type checker fills in that portion using the surrounding expression. An example involving an overloaded initializer illustrates how small the missing piece can be.

let convert = Double.init as (String) -> _?
let number = convert("42")

The argument annotation identifies the intended initializer, while the placeholder leaves the result's wrapped type for inference. The feature supplies partial context. It does not mean that the programmer can omit every ambiguous part and expect the compiler to invent an answer.

This kind of proposal needs attention to both implementation and explanation. The compiler must treat a placeholder as an unresolved type variable that other context can constrain. A reader must understand why it works in one expression and remains ambiguous in another. The announcement's emphasis on education and type checker experience is relevant to exactly that relationship.

The example is already part of Swift 5.6, as the proposal records. It is evidence of work a new group member has contributed, rather than a feature introduced by today's governance change. Keeping those dates separate avoids giving an organizational announcement credit for an earlier language release.

Synthesis combines convenience with explicit intent

Allevato's SE-0185 on synthesized equality and hashing provides another useful example. It addresses the repeated code required to compare members of a struct or associated values of an enum. Handwritten equality has to change when the stored data changes, and an omitted member can make the implementation incorrect.

Synthesis reduces that repetitive work under defined conditions. The proposal requires authors to opt in by declaring the conformance, with member types meeting the necessary requirements. That choice preserves an explicit statement of intent while letting the compiler construct the routine implementation.

The design problem is not simply whether generating less code is convenient. Equality and hashing carry semantic expectations, and synthesis must have rules for which data participates. A review group has to consider those expectations alongside the amount of repetitive implementation it can remove. Standard library protocols and language support meet in the same decision.

I value that combination of explicit intent and reduced repetition. It fits the aspects of Swift that appeal to me, including declarations that make important properties visible. The language group's remit covers the kind of joined language and library reasoning that such a feature requires.

The Core Team adds different experience

The adjusted Core Team retains Cohen, Saleem Abdulrasool, Kremenek and Tom Doron. Borla, Marc Aupont and Paris Pittman join it. The announcement explicitly identifies Cohen and Borla as direct representatives between the Core Team and Language Workgroup, giving the two groups a stated connection through their membership.

Aupont's description emphasizes community inclusion, mentorship and opportunities for technical growth. Pittman's includes experience with open-source communities and Kubernetes governance. Those additions are consistent with the Core Team's stated focus on supporting the wider Swift community. They should not be mistaken for a claim that community support happens independently of technical project decisions.

Abdulrasool and Doron also illustrate the wider remit through their work on Windows and server Swift. Supporting those domains involves more than accepting a syntax proposal. Their presence keeps platform and deployment interests represented in the group responsible for overall alignment.

The announcement does not supply a detailed escalation procedure or a completed operating charter. It says the Core Team and Language Workgroup will draft that charter over the coming weeks and work through the transition. Those are pending governance tasks as of today. Describing specific future voting rules or formal authority boundaries beyond the stated remit would go beyond the published plan.

What this changes for following language development

For someone reading a proposal, the new arrangement identifies a dedicated group responsible for language and standard library oversight. The Core Team remains responsible for coherence across the wider project. That gives contributors a clearer explanation of why an issue about the language's design and an issue about coordinating project activity may need different attention.

The prior work cited in the announcement also supplies a way to assess the new group's experience without speculation. Type placeholders show attention to inference and usability. Synthesized conformances show a language and library decision constrained by semantic requirements. Both required precise rules that application programmers could use without knowing the compiler implementation.

The immediate next step is the operating charter and transition described by Kremenek. Its contents will need to explain how the announced responsibilities operate in practice. Until then, the published change establishes the group's remit and membership, including the representatives who connect detailed language oversight with coordination across Swift's other workgroups.