[swift-evolution] Swift phases and mis-timed proposals
kremenek at apple.com
Mon Jun 12 00:54:13 CDT 2017
Everyone: this is a great thread, and I appreciate the candid thoughts here. This is something Ben Cohen and I started chatting about offline and we’ll definitely bring it up for discussion with the rest of the Core Team.
I realize there is a tension here, and a sense of frustration, because ideas sometimes feel like they don’t get air time or it isn’t clear what’s the right conduit for discussing them. I’m still mulling over the thoughts on this thread, but I’d first like to respond to Xiaodi’s point below.
> On Jun 11, 2017, at 2:54 PM, Xiaodi Wu via swift-evolution <swift-evolution at swift.org> wrote:
> A key question here to be answered is: is this mailing list the appropriate forum for "discussing ideas right away," whatever they might be? or is it more of a working list for bringing forward in-scope proposals in the successive forms of pitch, draft, and proposal review? As far as I can tell, the aim of scoping rules is to nudge it towards the latter, and personally I think that's quite nice in terms of bringing sanity back to my inbox as well as focus to the discussions. By contrast, I have seen blogs, Twitter, and other channels used profitably for discussing ideas right away, and personally I've found off-list communications to be the best way to prepare for the much more difficult task of convincing the discerning crowd here.
I think this captures the current reality fairly well. In the Swift 3 timeframe, the swift-evolution process/venue was brand new and lots of discussion emerged on the swift-evolution list almost overnight. Further, while there was a scope of the changes in Swift 3 they were pretty vast and encompassing. For myself and other members of the Core Team the evolution discussion at times also felt a bit overwhelming. Beyond the investment in shaping the swift-evolution community, it was a struggle to balance discussions, design work, and implementation work that aligned with Swift 3.
The phases of discussion we see in Swift 4 in many ways are a direct response to trying to instill a bit more order to make swift-evolution both less chaotic but also fit with the rhythm of the release. Swift release follow a fairly predictable schedule, roughly following Apple’s yearly OS release cadence with the first “beta” of the major release of the language in June (aligning with WWDC). The engineering and design work for a Swift release pretty much orients around that. My hope is that major design discussions that define a release come earlier in the release cycle, with proposals trickling in as refinements. We saw that a bit in Swift 4 with the String Manifesto and the Ownership Manifesto. We also phrased “phase 1” as being very focused so that critical momentum on Swift 4 could be established without discussions unrelated to the release creating major distractions for the community and the Core Team. With “phase 2” the scope of what was on topic for Swift 4 was opened up a bit, but even that was hit and miss. We took some proposals very late that also landed with hot implementations. As it is, some proposals simply were beyond our capacity to implement, such as SE-0155. The fate of SE-0155 in particular will need to be re-evaluated once we look at the scope for Swift 5 (TBD).
Getting to Xiaodi’s observation, the evolution list is really the most effective as a working list for bringing forward in-scope proposals. There’s a ton of different topics people want to talk about — and their is some obvious angst about getting to those — but at the end of the day there is only so much bandwidth from everyone to pay attention to these discussions and to get seriously invested in them. Maybe moving to Discourse (which is something we still want to do, but have had limited bandwidth to implement) will provide the “off-list” communication channels analogous to the ones Xiaodi describes that keeps those discussions in the Swift.org discussion forums but clearly separates discussion for in-scope proposals versus the side discussions people want to have on topics they are interested in. Even in this setup, however, I think everyone needs to acknowledge that members of the Core Team or anyone else active in the evolution process has limited capacity to participate in only so many discussions. In reality, the discussions that are about in-scope proposals will continue to get the priority attention even if there is a place to discuss things that are out-of-scope.
I appreciate everyone’s thoughts here, and myself and other members of the Core Team are keenly interested in finding ways to improve the nature of swift-evolution for the benefits of its participants and the broader Swift community.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the swift-evolution