<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Hi Swift-Evolution,<br class=""><br class="">The Standard Library's goal is to be small and targeted. However, many aspects of Apple-provided&nbsp;frameworks need or offer opportunities for improvement or wholesale replacement. These&nbsp;enhancements lie beyond the scope of the Standard Library.<br class=""><br class="">To address this, we'd like to propose the idea of a "Non-Standard Library"; this would be a library&nbsp;that ships with a regular installation of Swift, but is&nbsp;not&nbsp;imported into .swift files by the compiler,&nbsp;unless explicitly requested by the developer.<br class=""><br class="">We are proposing a well-organized effort to parallel the Standard Library without putting additional&nbsp;implementation responsibilities onto the core team. This effort would mitigate what we see as&nbsp;platform-independent requirements that provide native Swift implementations that aren't burdened&nbsp;by Apple history.<br class=""><br class=""><b class="">Mission Statement</b><br class=""><br class="">We propose to create an open-sourced "Non-Standard Library" effort that coexists with,&nbsp;coordinates with, and is blessed by the open source Swift development community. The "Non-Standard Library" will offer a well-curated, high-value collection of routines, types, and&nbsp;documentation to support Swift development on all platforms.<br class=""><br class=""><b class="">Goals</b><br class=""><br class="">The main goals of this effort would be:<br class=""><div class=""><ul class=""><li class="">Alleviate pressure on the Core Team while providing the developer community with&nbsp;functionality that normally falls under Apple's internal development umbrella.</li><li class="">Deliver authoritative, reliable, and regularly updated libraries avoiding issues faced by third-party dependencies.</li><li class="">Provide oversight, organization, and full community involvement to ensure its components are&nbsp;worthy, maintained, and passing a bar of need and excellence.</li></ul></div><b class="">Suggested Libraries</b><br class=""><br class="">There are several areas we think that are ripe for improvement and implementation as a non-standard library, such as (but not limited to):<br class=""><div class=""><ul class=""><li class="">A BigNum library</li><li class="">A full-featured Random library</li><li class="">A simplified date/time library</li><li class="">A library for manipulating paths (that is not based on&nbsp;URL&nbsp;or&nbsp;String)</li><li class="">An expanded Swift-native Geometry library and so forth.</li></ul></div>The scope and extent of the sublibraries would be proposed and debated on a parallel Non-Standard Library Evolution development list.<br class=""><br class=""><b class="">Coordination</b><br class=""><br class="">This effort would be fully coordinated with the Swift development team, respecting the team's&nbsp;existing commitments and responsibilities. We would request an Apple body to act as an official&nbsp;coordinator, enabling both oversight of this effort and to expose Apple-sourced suggestions to the&nbsp;Non-Standard community for action.<br class=""><br class=""><b class="">Next Steps</b><br class=""><br class="">To proceed, we need a general community consensus that this effort is worth the significant&nbsp;overhead it would involve.<br class=""><br class="">We must then:<br class=""><div class=""><ul class=""><li class="">Select a project lead, who appoints technical leaders from the community.</li><li class="">Recruit a core team, a small group responsible for strategic direction, pulled from experienced&nbsp;members well versed in contributing to Swift-dev.</li><li class="">Establish a Non-Standard Swift Evolution process, based on the one that is currently followed&nbsp;by Swift Evolution. Following SE practices will guarantee a consistent and excellent language&nbsp;experience for those developers including the Non-Standard library into their projects.</li><li class="">Build a Non-Standard Swift Evolution repository home.</li><li class="">Adopt a code license, based on Swift's current licensing.</li><li class="">Define the community working group rules and code of conduct.</li><li class="">Establish a mailing list and/or forum.</li><li class="">Begin the selection of target sublibraries and populating them by recruiting committers and&nbsp;contributors.</li></ul></div><b class="">Alternative Names</b><br class=""><br class="">Suggested names for this effort include the following.<br class=""><div class=""><ul class=""><li class="">Extended-Standard Library</li><li class="">Community-Standard Library</li><li class="">Non-Standard Library</li></ul></div>We are not married to any of these names and welcome alternative suggestions.<br class=""><br class=""><b class="">Measures of Success</b><br class=""><br class="">A successful Non-Standard Library will provide a stable and incrementally grown ecology of Swift&nbsp;frameworks that developers can depend upon with a minimum of turbulence and regret cycles. For&nbsp;that reason, the most successful content will be core functionality, with significant field testing prior&nbsp;to adoption. We recommend that NSSE follow a model of provisionary adoption and refinement&nbsp;before deployment to ensure any adopting code base will not be affected by later module changes.<div class=""><br class=""></div><div class="">Thanks,</div><div class=""><br class=""></div><div class="">Dave DeLong and Erica Sadun</div></body></html>