Crowdfunding world domination

The same way everything works in a free software project. Without any hiring process or contract, how do you give someone write access to your repo? By gradually building trust. Some people are already well known in the community, others have credentials to show like a successful history of shipping features in other free software projects. The amount of trust required can be proportional to the task being pitched. And if we pay after the feature is delivered, I think that dials the risk down to pretty acceptable levels.

I thought that was the idea right from the start, but apparently I was mistaken. I just feel that involving Apple and going for an “official” foundation is a boil-the-ocean approach – it’s possible, it makes sense, but there’s risk it will take years until anything is really done. That’s why I favour the grassroots way, where we could have small grants for small features going in a few weeks and scale that as we go.

Again, I don't think this will work. Payment upon delivery means you can't work on it full-time (unless you're rich and can support your family without any income). Working in your free time also has its issues. Free time is limited, meaning the bigger problems will never get solved by developers working in their free time.

Take the IDE problem for example. I've been using Swift plugins for various IDE for over two years now. In those two years, I've seen many projects come and go and hardly any progress being made. If this continues for two more years, we will have lost pretty much all momentum to make Swift really cross-platform.

But let's wait for feedback from the core team first, otherwise this discussion will keep going in circles :smile: !

2 Likes

We obviously have a different initial scope in mind. I was imagining smallish tasks, maybe a few days worth of work, with low risk on both sides; slowly increasing the scope with growing confidence, eventually perhaps arriving at a full-time developer or more. I understand that you would like to go big from the start – OK.

It is sad or maybe pragmatic to think, but if you look at open source projects of a certain magnitude, complexity, and quality (of product, user experience, and docs :)) I think you will find many contributions from people paid to do so... Linux kernel, open source IDE’s like VSCode, heck Swift itself, etc...

Curious, have there been any discussions involving the core team yet?

1 Like

Yes, we've talked about it quite a bit. I don't have anything concrete I want to report yet, sorry; it's a very complex problem.

I will say that the Core Team is in agreement about the need for more work to maintain and improve Swift on Linux.

14 Likes

Please do not forget Windows. Swift needs an „official“ Windows version to be successful as a widely used programming language, downloadable from swift.org.

8 Likes

Yes, it is important to repeat that Darwin + Linux support is maybe enough for Apple but it is not for the Swift community (and hopefully neither for the Core Team).

Without official Windows support Swift cannot be considered a successful cross-platform language and we should solve that.

1 Like

So they don't give a shit about windows

That was to be expected coming from Apple anyways..

The Core Team absolutely does care about Windows and would love to have a working Windows installer you could just grab off the website. It's just a fairly challenging port for a variety of technical reasons — DLLs have a lot of extra restrictions that don't fit with our current code-generation assumptions.

5 Likes

At the risk of derailing this thread - how many of those restrictions still apply if you assume that all Swift code is statically linked together for Swift apps built on Windows? I ask because that's the approach I've found success with on Windows in the past, and it seems unclear that dynamic linking is necessary when, at least in the short term, there's likely only a few applications using Swift running on the system at a time. If static linking is a viable approach to take in a short term then I don't think having a Swift installer available is that far away.

1 Like

Committing to only use static linking is a reasonable short-term workaround. But you're right that this is a derail; there's a recent thread that's a better place to discuss how to bring up Windows. Mostly what the port needs is contributors working to help it along; Apple's contributions are (hopefully understandably) focused quite heavily on ABI-stability tasks right now.

2 Likes

Comments like this aren't helpful in any way. You can't blame companies like Apple for focusing on their own business and not just throwing money at stuff the community wants.

@John_McCall I'm not sure if this has come up in the core team discussion already, but I'd like to make the case that funding cross-platform Swift (incl. Windows) is important for Apple's business.

I don't think Apple gets this, but it is losing the fight for developers. To use my situation as an example: I've been teaching iOS development with Swift since Sept '14. Here are some challenges I face getting students to enroll in my course:

  • Only about 10% of my students has a MacBook, which is a course requirement. This is a major barrier, as a 15" MacBook Pro costs as much as the student's tuition for the entire 3-year program. Even if money is no issue, if the student is a gamer, (s)he isn't going to switch to Mac.
  • Students have to learn yet another programming language. Learning a new language is a major investment, and if that language is useless outside of the course, it's a hard sell.
  • Apple isn't present at app development conferences, making it really easy for other companies to influence students away from native app development and into the horrors of the web.

The competition has it much easier as they use general purpose languages that students are familiar with and run on whatever hardware the student already has.

My point here is that making Swift a general purpose cross-platform language, with proper platform and IDE support, would lower the barrier of entry into iOS development and would help ensure the future of Apple's ecosystem.

8 Likes

everything you said is completely true, but also keep in mind a macbook is required for any iOS development, regardless of language. is this a major put-off and incredibly short-sighted of Apple? yes. But it’s not a Swift problem exactly, it’s an iOS problem.

you might want to consider teaching Swift on Linux,, obviously it’s not perfect, but you can do a lot with it, and Swift’s great C interop means you can do basically 80% of everything you can do in C, which for an introductory course is more than enough.

this is funny us Swift on Linux people have the same complaint, except it’s OSX that’s one rung above us on the ladder. I guess for apple it’s Darwin > Linux > Windows, which makes sense if you think about it

I've tried teaching introductory programming courses with Swift, on Linux. Unfortunately, Linux and IDE support simply isn't good enough for that yet.

1 Like

Of course! I don't think official Windows support should be considered until Swift 5 has been released. But I think it is important for the community to get the feedback from the Core Team that official cross-platform support for all main OS should be a significant goal for the next big release of Swift as it is one of its biggest weaknesses (even though from an Apple-centric view it may be not).

That lack of commitment is what thrives me to believe that we need a platform-neutral Swift Software Foundation that could lead cross-platform support, developement of IDE helper tools and libraries, try to expand its use to other fields, evangelize its use in non-Apple conferences (and ultimately world domination :slight_smile:).

5 Likes

This would be a huge gain for the Swift community.

I think a lot of people want/agree that this "platform-neutral Swift Software Foundation" is a good idea for long-term Swift world domination...but does anyone know how this foundation would even get created/organized?

If it's platform neutral, should Apple go through the effort of creating it? Would we even want them to? Would they even be willing to? Does some 3rd party just happen to go through the effort of it for us? Do we make an evolution pitch/proposal and have the community as a whole decide/contribute on it?

/inserting shameless plug for https://www.elememtscompiler.com/silver ;)

I assume that's what the core team discussions are about ;) Let's wait for feedback?

4 Likes