I'd be happy to bring this up to the Core Team. Fair warning, it might take some time for us to respond: among other things, it's summer in the US, so a lot of people are taking vacation.
Thanks! I look forward to the feedback.
To be fair, that would require a Swift package in the Ubuntu repositories, which isn't really up to anyone in the Swift project to make happen. Being a good platform citizen, compatibility with newer distros and a little lobbying would probably go a long way though. An official PPA might also be a good option until we get an official package.
It needs commitment from the whole team before anything else
Look at kotlin native, all major OS supported before 1.0, this is a clear commitment to cross platform
Patching the whole compiler with hacks isn't really proving anything
This is the most important thing, as time goes by, people just acknowledged that swift is macOS/iOS only at this point, changing mentality will be even harder that getting commitment from the team imo, so at this point getting traction from the community is near impossible
Dunno who's fault is, but i kinda feel like Apple lied when they introduced swift for the first time, or maybe i was too naive to think it'll be "crossplatform" in the sense of supporting every other architecture and OS outside of the Apple eco system
^^ Both of these. Without core team energy/effort, it will be extremely difficult for optimal cross-platform support. Unfortunately, since core team works for Apple, they're always gonna prioritize Apple platforms a little more than others.
That being said, all of the new features are compatible with Linux (on Ubuntu, one of the more common distros) and the swiftenv
program makes it really easy to install (see swiftenv). There are ports all over the place for several distributions, and if push comes to shove you can build from source on many distros.
I do believe it will only be a matter of time before Linux support becomes a more important aspect of swift development. This thread being evidence that people want it and I do think the core team listens to the community.
I don't think this is as big a deal as you're making it sound. Yes, some people do think swift is Apple platforms only and it will be difficult to change their mind, but anyone who really wants to get into swift pretty much is/can. The multiple ports of swift to several distros and architectures is evidence of that. The cross-platform story is always improving with each release, albeit slowly. As I said above, I do believe it's only a matter of time.
Yes, but that's not the point. The point is that people who are not on Apple's platforms generally don't want to get into Swift. Yes, you can build from source, but it's often times so painful that you really don't want to.
You do make a valid point and I do agree that the cross-platform story has a long way to go. Hopefully this thread prompts some changes at Apple and helps get core-team support of better cross-platform integration.
There was a suggestion not too long ago about getting swift binaries available in the various system package managers. I feel that this would be a perfectly reasonable (and relatively simple) way to improve the cross-platform story right away. I'm also a big fan of working on finishing the Foundation implementation on Linux. I think these two things would have a big impact and could demonstrate Apple's commitment to cross-platform swift world domination. After Foundation is finished, then they can begin adding support for additional architectures, etc.
Where do you think the core team could best spend their time to improve the cross-platform story?
I think, off the top of my head, and ordered by priority:
- Provide binaries for the latest Ubuntu release. "It supports Ubuntu" really isn't true anymore, at this point.
- Make compiling from source no more difficult than:
(Note that I said "no more complicated", not necessarily "exactly like that", although it would be nice to respect this standard.) The "build Swift" section in the README is way, way too complicated (just compare this with e.g. the section in the Rust README). Also, builds fail way too often - and too late and without a clear indication of what went wrong../configure make sudo make install
- Get the binaries into the package managers of all the major distros. Having an easier way to install Swift will probably make this process a lot smoother.
- Spend more resources on the SPM (including its command-line tools), a cross-platform, cross-editor language server, etc., so developing with Swift on Linux becomes more pleasurable
I second that. It still feels that SPM is like a little side project with little to no visible progress.
The reality is of course different, and the people working on it are among the most helpful and generally awesome developers I know!
we need 18.04 binaries. 16.10 is basically unsupported now (its binary runs on 17.04 and 17.10 but they are both unsupported now too). 18.04 is the current LTS version.
I donât think itâs reasonable to expect people to compile swift from source. it takes 70 GB of disk space and several hours and hung my system the first 2 times i tried doing it. âhow to compile swiftâ also turns out to be not the easiest thing to google since swift is, well, a compiler.
It also seems to me that the build system doesn't do enough sanity checks at the beginning. E.g. I had a build fail after several hours because the wrong Python version was in the path... something like that could be checked initially.
I'd like to include "It supports Android" in there. It's a (slightly) taller ask but I imagine most engineers get into Swift through mobile development and companies aren't waiting anymore to go cross-platform.
For example, Kotlin Native is making iOS support a primary factor in their 1.0 story. As this gains traction I imagine Swift will begin losing support just as fast. Not fully supporting Android isn't just bad for Swift, it's bad for Apple who, from my understanding, likes to keep people as wedded to their ecosystem as possible which helps both brand and quality.
And by "fully support" I mean distro and Foundation. Not necessarily UI/UX/API bridges.
We seem to be very good at making lists of things to be done :) Now how about actually collecting some money to fund the Linux packages, for example?
Could we maybe create a community at opencollective.com, start sending monthly donations there and then people could pitch funding ideas like we pitch technical changes? âI would like to package Swift X for Ubuntu Y for $Z, what do you think?â
Collecting money is pointless until Apple decides to seed some control here and an actual foundation is created. Personally, Iâd never donate to any unofficial organization.
IMHO the less we depend on Apple the better. Whatâs the point of a free software community if we donât start standing on our own feet at least in some things?
It would be actively harmful to the Swift community to bifurcate the support and development efforts. Plus, no effort will succeed without the deep integration only Apple can offer on their platforms. Without them, I donât think thereâs much of a chance for Swift.
Iâm sorry, I donât follow. If a bunch of Swift fans put together some money and then decide to sponsor things like binary Linux packages or some SPM features, how is that a bifurcation?
I think he's under the impression that Apple controls what pull requests are accepted.
I don't think this will work, due to a lack of trust. Without any hiring process or contract, how do you this person (often completely unknown to you) can and will do the work suggested?
It's easy to start an open source project and claim you'll fix problem X or Y, but very little projects actually achieve something. I'd rather support a foundation and have them hire developers than put my trust in individuals.