Crowdfunding world domination

The Core Team believes that great cross-platform support remains a critical aspect of Swift’s charter and long-term success. This goal encompasses a variety of things, including:

  • An excellent core implementation of the language that works cross-platform.

  • High-quality high-level tooling for Swift developers who are not doing their development on Apple platforms (e.g., good editor support potentially via the Language Server Protocol). This implies supporting Swift in a large number of existing editors and IDEs, and not necessarily creating a cross-platform one from whole cloth. Swift needs to be viable in the places and ways people are doing their development today.

  • Great low-level tooling support from the debugger, sanitizers, etc.

  • Powerful capabilities in the Swift Package Manager (and likely a package index) to empower developers to build and utilize a rich ecosystem of Swift libraries.

  • Rich documentation — hosted on a central place such as Swift.org — to support Swift users on all platforms to get started with Swift and be productive.

  • Well-architected and maintained ways to distribute and install Swift, including installable packages for more Linux distributions, containers, and other platforms as Swift is ported to them (e.g., Windows).

  • Further facilities in the language to amplify the language’s provided toolset to address core programming tasks, such as a first-class concurrency model.

This thread has raised lots of interesting ideas, and it's great to see open discussion about potential paths forward. Everyone on this thread is excited to see Swift succeed as a cross-platform programming language. While there is a lot more to do to fully realize that aspiration, a lot of good stuff is already happening that we can build on:

  • Apple — and many others — continue to contribute to Linux and other cross-platform support via various efforts: the Swift Core Libraries, SwiftNIO, various Swift on Server frameworks, etc.

  • Engineering teams outside of Apple are pushing the Swift project forward in important ways beyond it being a great language for macOS/iOS app development. The Swift for TensorFlow effort is a great example.

  • The project is actively fostering development of Swift beyond just the concerns of Apple platforms in various ways such as the creation of the Forums with “Related Projects”, the community-hosted CI to extend the set of platforms tested, etc.

  • Apple is actively engaging in Swift conferences — organized by the broader community — to help foster engagement in open source development of Swift. The open source workshop at try Swift San Jose was also well-attended by Apple engineers as part of helping onboard more folks to contributing changes to Swift. These gatherings of the community are great opportunities for the open source community to push on increased collaboration on driving forward great cross-platform support for Swift.

Ultimately, the Swift project needs to have more contributors in many spaces to help drive Linux, Windows, and the various other aspects of Swift forward. Anyone interested in contributing but running into roadblocks are encouraged to ask for help on the Forums. It all comes down to people having the time, energy and focus to push Swift forward in small and large ways. Some of that energy will likely need to come from entities with engineering resources they want to commit to the project (e.g., Apple) but a lot of that can and should come from the general community.

One of the challenges we face as a community — which is possibly one of the key underlying concerns motivating this thread — is the need to better organize and harness the energy that's already in the project today and remove roadblocks for those who want to help. For example, I’ve often seen folks answering each others questions (e.g., how to get Swift building on a specific Linux distribution) on the forum threads; while it's great to see that, a really valuable next step would be to open a PR against the project’s documentation to incorporate that information so that it can benefit the broader community.

The best way for the project to make progress is to start with a clear understanding of what problems we need to solve as a community, and then look for ways to best support addressing them. The Core Team suggests starting with concrete discussions on how to achieve some of the most pressing pieces for a great cross-platform story, such as:

This isn't an exhaustive list of everything we need to talk about, but it seems like a good beginning. The Core Team will proceed with kicking off those threads.

NOTE: This post will later be edited to include links to those threads.

With regards to a non-profit organization ("Swift foundation") focused on supporting Swift, such an organization could potentially help with accelerating Swift’s greater success. Ultimately, however, the success of such an organization comes down to:

  1. Figuring out how that organization can best help with the challenges faced by the community.

  2. Having dedicated people with a vision to run that organization.

Opinions will vary on where such an organization could have the most impact. The Core Team feels that a non-profit organization could potentially help to foster development of the community, but is unlikely to be able to fund and support major engineering operations. Regardless of what it does, the organization would still need vision and stewardship on what problems to focus on addressing. That vision really needs to come from active participants in the community who are already motivated to focus on those problems.

The Core Team believes that — presently — the best investment from the community is to focus on meeting the near-term challenges we've talked about in this thread. By working together and harnessing the energy that already exists in the community, we can make a lot of progress and build momentum to address the longer-term problems. That will put us in a far better place to see and have a clear conversation about how organizational support, such as a non-profit, can best help further our shared goals as a project.

45 Likes