Crowdfunding world domination

Like many here, I find myself in the situation where I would love to contribute to Swift, but lack the time and/or skillset to do so. To give an example: As a lecturer, I would love nothing more than to promote Swift as a primary language in CS education. Unfortunately, that's not possible at the moment, due to several issues. Even though I cannot solve these issues myself, I would gladly donate to see them resolved.

If we really want to see our favorite language succeed in the outside world, we need much better cross-platform support, cross-platform tools, and so on. We cannot expect Apple to fund this, nor should we hope that some benevolent developer will offer up all his/her free time.

It would be great if Swift had a Foundation (like many other open source projects) that could accept our donations and use these to fund work the community needs. Has this ever been discussed?

25 Likes

We cannot expect Apple to fund this

Why not?

1 Like

Why not?

While Apple would benefit indirectly from Swift adoption outside of their ecosystem, I don't see them as a company that "gets" this sort of thing. While I do agree that they should fund certain things, like a Windows port, I don't expect them to. Beyond that, I estimate the chance of them funding e.g. a cross-platform IDE for Swift is close to 0.

They have done a great job on Swift so far, but I expect them to focus on their own needs, which is fair.

However, if there were an independent Swift Foundation, they might consider sponsoring that?

9 Likes

This is a great suggestion.

The Ruby ecosystem improved considerably due to the work of e.g. Bundler and tons of other, independent libraries (RSpec, RVM / rbenv, rubocop, to name just a few), to the point that to many today these libraries are synonymous with Ruby. The same is probably true for most other language ecosystems. If there was a way to explicitly fund people working on similar tools for Swift, that could be a game-changer.

1 Like

I would also be very interested (as a backer) in individual crowdfunding campaigns for particular features or milestones – improved testing toolkit, jump-starting a third-party ecosystem à la CocoaPods, etc.

2 Likes

Even if Apple was willing to fund it, how reliant would we want to be on a single company whose interests are only partly aligned with that of the language community, and could withdraw support at any time? Apple has done a commendable job backing the language the past 4 years but i don’t think anyone ever intended Swift to be an Apple project forever

7 Likes

In fact, I believe a major point of open sourcing Swift (and it's evolution) was to ensure that the language would not remain an Apple project forever.

5 Likes

Note: I definitely don't speak for Apple here. This is my personal opinion, and is not informed by any insight into the actual thought process of Apple.

My personal belief is that while Apple would like to see Swift go more places and grow, that their culture around focusing on few really really important things means that this will never become a sufficient priority for them to devote serious time and energy to. I think it is best to assume that Apple will not proactively push Swift onto non-Apple platforms, at least not with anywhere as close to the energy that they invest in their own platforms. I would love to be surprised about this, and some recent moves are truly awesome (Swift NIO seems really phenomenal!) so who knows?

To be clear, this is simple business sense. I don't think that this should be surprising, and I don't think Apple is wrong for this. What this means is that we as the community should make this happen if it is important to us.

-Chris

20 Likes

I have been working for a few months now on a cross-platform Swift IDE. To date, much of the work has been spent on building Suit - a cross-platform Swift GUI toolkit. Suit is coming along fairly well. It's write-one-run-anywhere, so the same code base will run on - currently - iOS, macOS, and Linux. It's designed such that apps feel at home on the target platform, as opposed to other cross-platform solutions, such as Swing or Electron.

Anyway, I plan to open source all of this once it's a little further along. I'm hoping there'll be some community interest in both Suit and the as-yet-unnamed IDE. I think the community could build an amazing IDE together, focused on SPM projects.

I'm aiming to have something to share by the end of the summer, and hope to have these projects added to the "Related Projects" section of this site. I might start a blog detailing the progress in the meantime, so I can at least share some progress with anyone who might be interested.

30 Likes

That sounds exactly like what I need :smile: Can you elaborate in PM (to keep this thread on-topic)?

I am strongly in favor of something like a Swift.org Foundation (probably a better name is required :slight_smile:). It could be partly funded by Apple (probably it should start mainly controlled by it), but its goals would be a bit more broad than Apple's ones for Swift:

  • Extend Swift usage
  • Achieve full cross-platform support (Windows support, easy to install toolchains, tooling)
  • Maintain Swift.org, its forums and Swift Evolution
  • Maintain the Swift repositories and CI

I mean, I love and thank Apple for what has been doing until now with Swift but moving forward probably requires more push from external actors. Some other companies (for example, maybe Google :wink:) could hopefully have some incentive in helping to fund the Foundation.

(As a simple example, Apple does not have a huge incentive to invest in Swift PM as they already have Xcode properly working with Swift. On the contrary, an independent Swift.org Foundation should invest heavily in Swift PM as it is a required tool to build Swift on any non-Apple platforms.)

4 Likes

Awesome, I look forward to seeing what you come up with! It sounds very interesting,

-Chris

4 Likes

Hey @svanimpe! This seems like a great idea, and also very ambitious, which can be a good or a bad thing I guess :thinking:

Would you consider starting out with a simpler solution? For instance, we could probably set up a Patreon or some such (I don’t really know these services intimately) to pay community developers to implement features we want in the language. How does that sound to you?

The problem I see with donating to individual developers is that we have no control over the outcome. If we were to pool our donations into a foundation, that foundation could then:

  • Accept proposals for work that needs to be done.
  • Judge proposals: How important/urgent is the work? What skills are required to complete it? How long will it take to complete?
  • Hire developers.

I don't think setting up a foundation is that ambitious?

5 Likes

Sure, I agree, I just thought of it just as a beta version of the foundation :slight_smile:
I have no idea of the kind of work it would take to set up something like that, but I do hope you’re right and it works out!

I think this is a great idea.

If anybody seriously starts driving this, I'd propose to check with existing foundations (e.g. Apache, Mozilla) if Swift could have a suitable home there.

Define "properly"? As a person used to the ecosystem and tooling of Java/Kotlin (esp. IDEA), I am continuously disappointed and annoyed by XCode (and also CocoaPods, but that's not Apple). To me, the (subjective) inability of Apple to produce an effective (again, imho) IDE is a big reason for taking Swift (tooling) out of their hands as fast and much as possible.

2 Likes

Could https://opencollective.com/ be an interesting place to set up a 'foundation'? It would be accompanied with plenty of other great open source projects. :slight_smile:

1 Like

The more I think about this, the more it seems to me that the only way to really get the ball rolling would be to convince a few people that are present/knowledgeable/influential enough in the community to take over and drive the effort forward... what do you guys think?

That's exactly what needs to happen I think. A foundation relies on senior (that is: knowledgeable) members of the community to decide on how to allocate the funds that come in. I sure couldn't make those decisions...

Unfortunately, most of these people work for Apple, so their hands may be tied :pensive:

Do you have any thoughts on how we can make this happen?