Crowdfunding world domination

Mozilla makes Swift’s competitor, Rust, so that doesn’t really make a lot of sense tbh

We are hosted by Microsoft and take major contributions from Alphabet, don't we? ;-)

2 Likes

No, I'm not really sure how to make this happen or what the scope would be. The first thing that is the most important is that someone needs to stand up to drive the effort, with an interest in eventually dedicating themselves to it full time. Is there someone with that interest?

-Chris

1 Like

This is something I'm interested in. But I've taken on the work of developing an open source cross-platform IDE, which I think is essential for the advancement of the language on other platforms. I'm not sure I'd have time to do both in my spare time, unfortunately, at least not while the IDE is undergoing a lot of work towards its first beta. I'd like to, in an ideal world, though.

I see two main points in the construction of a Swift Foundation. One is financing the foundation, and the other is deciding on the foundation's goals.

In terms of financing, a common setup for open-source seems to be:

  • Provide different levels of sponsorship for organisations, allowing them to influence the direction of the project, and generate goodwill.

  • Accept donations from individuals.

I'm sceptical about the latter generating a sizeable enough income to really achieve anything, so I think the former is what we'd need to aim for. Apple already spends a lot of money employing people to work on Swift and related projects, so it's effectively a diamond sponsor already. I guess the same is true for Google, now, albeit to a lesser extent. The problem I see is, would these companies be willing to invest further, directly into the foundation, thereby giving up say in the direction that additional money would be spent? I would guess not, and I'm not sure I can blame them. What other companies would be willing to make donations? It only seems to make sense for companies making money off Swift, and who would have something to gain by providing input, so I think we'd be looking at large app developers. I think it makes sense for a large company, that has a Swift app which generates a big part of its income, to want to have a say in the language, to ensure it keeps its interests in mind.

I think for this to have a chance, someone with authority would have to "bless" it. Whether that's Chris, or Ted, or Apple as a company, I think someone will have to say: yes, Swift Foundation is a thing, and you should support it. And we'd have to do a really good job of explaining why this foundation is important, and what companies would get out of their sponsorship.

In terms of the foundation's goals, these are what I see as being most important:

  • Encourage the adoption of Swift on other platforms: other Linux distros, Windows etc., and ensure sufficient infrastructure is in place to maintain and test foundation-supported environments. In the case of Linux, ideally add pre-built packages to various different dependency managers.
  • Get Swift in the classroom. I know Apple has been doing good work in this area, but I think we can do more in the direction of making Swift be the language taught in universities, and I think making the language be less associated with Apple will help, and the other goals listed here will all help make that happen, too.
  • Develop a high-quality, cross-platform IDE that will run on any platform on which Swift runs. This is what I have been working on, but there's still a lot to do. Steady progress week-by-week, though, and it's moving in the right direction.
  • Implement language/library features that the core team don't have time to work on, but which are important for the foundation's goals. Obviously, everything has to go through the evolution process, but having the foundation hire a developer to implement an important feature that has been accepted, would be valuable.
  • Be a voice that represents the values of an open, inclusive community.
  • Support community projects that are good for Swift, but which may not be profitable. I'm mostly thinking about server-side Swift here, but there could be other examples.

Apologies this post became so long. One final point: with any topic like this, I think it's useful to think of where we want to be in a few years, and think about how likely we are to get there, both with and without a foundation. I think we all want Swift to be available on more platforms, with a great development environment, be taught in schools, to help push features forward that may not be Apple or Google's priority, and to make Swift be the dominant language for many more domains. I think some of that can happen without a foundation. But I don't think the cross-platform support can. Without a strategy, and the resources to invest in implementing the strategy, I think Swift will look like "an Apple thing" to most developers. And the risk is, if we wait too long, that thought will become solidified and it'll become difficult to ever get people to see Swift as a good option for their project.

8 Likes

i’m worried this could become a problem over time. App developers aren’t representative of all the places where Swift wants to expand into, and they have different needs than say system programmers or library developers.

most people i talk to (who are into programming) seem to view Swift as the niche “iOS language” so you’re definitely right

part of this is also integrating Swift better into existing 3rd party editors. i think a lot of people here use XCode so there seems to be an attitude where if a language or SPM feature works on XCode then the other editors don’t matter. of course this is a problem not the least of which XCode doesn’t run on linux. making Swift play nice with external editors means documenting and making SourceKit more accessible (right now all knowledge of it seems to be passed down in the oral tradition) which in turn requires resolving the Swift installation story.

3 Likes

When I tell people I do server-side Swift they look at me funnily. And with good reason: Few people seem to do it, so you're pretty much on your own.

5 Likes

Blockquote
part of this is also integrating Swift better into existing 3rd party editors

Yeah, I totally agree with that. We need a good language server implementation (there are a couple on GitHub, and they seem to be making good progress). JetBrains did their own thing with their IDE (CLion), and it doesn't work that well on Linux, in my opinion, although they don't seem to have invested too much in it. It would be good to have lots of other options, too.

yeah, I put together a sourcekit based syntax highlighter for the Atom editor (atomic-blonde) but it’s so complicated to install and use (you basically have to clone and build it manually) because Swift really has no coherent installation story. people just download the compiler in a zip file and run the compiler binary

5 Likes

Another thing ist that, IMHO, for people from other language communities to adopt Swift, the testing situation needs to be much better. XCTest doesn't even have pending tests. This is a major pain-point for my team. The reporting is also not great (and especially not pluggable).

2 Likes

This is fascinating. Do the blog :grin:

I did start one. The first post is an introduction to the problem I'm trying to solve, I guess: https://medium.com/@saniceadoughnut/navigating-to-swifts-bright-future-813f8d3dd892. If you follow me on there you can follow the progress. Thanks!

3 Likes

Installing Swift on non-Apple platforms is a bit of a headache, and unless you’re on exactly the supported version of Ubuntu, you need to compile Swift from source, which is an hours-long process, and not for the faint of heart.

agreed, though i’ve never had to compile it from source just to get it to run on my platform. the official swift binaries support a lot more versions of Ubuntu that they say they do,, the 16.10 binary runs just fine on 17.10. that said it’s not really obvious that you have to install clang to make swift work (i don’t remember this being documented anywhere!). And there’s a lot of compiler bugs that happen on linux that people just really don’t seem to care about.

$ swift
Welcome to Swift version 4.2-dev (LLVM 70f121e1f0, Clang 4c555650a6, Swift bb9532c588). Type :help for assistance.
  1> 2 + 2
error: Couldn't lookup symbols:
  swift_beginAccess
  swift_endAccess

  1>  
4 Likes

You have some good thoughts, but this one I stumbled about.

There already are platform and language independent semi-IDEs (Atom, VSCode) and full IDEs (Eclipse, IDEA et al.), both free and proprietary. Why do you think creating the n+1-th IDE is a good strategy, as opposed to creating plugins for the IDEs many developers are already familiar with, or at least leveraging their (open) platforms?

(Maybe this particular discussions needs to happen elsewhere.)

Amen!

I've been roaming their bugtracker for a while (using AppCode here). One specific tidbit was that they are waiting for SPM to stabilize before investing into supporting it. They are watching developments.
Whether they would be willing to join the efforts as part/funder of a Swift Foundation, I don't know, but they do seem to have some interest in Swift, both in and beyond the iOS market.


Meta note: It's clear that there are many hurdles before Swift can come anywhere near world domination. I think it would be helpful if we (looking right at myself there) could focus on one issue per topic.

3 Likes

Crosspaltform IDE is bad idea, there are already ton of IDEs, nobody want another one

Instead what could be done is: Language Server + plugins for existing IDEs

A standalone IDE just for Swift is waste of time and probably won't help increase usage of swift in other platforms

VSCode, Intellij or CLion, Eclipse etc

PS: there is already a CLion plugin that works on both macOS and linux

3 Likes

That can be a good idea. But everything related to money is not that easy. Once that come true, there would be a lot of companies doing that for money. I can't even imagine that. :scream:

I agree to that - but only when you put emphasize on the "cross platform":
I would be quite happy about a native IDE (neither Java, nor JavaScript; Swift would be fine ;-) that has a good plugin interface that can rival Eclipse.
Maybe I would even pay money for such an application ;-)

Out of curiosity: what do you care about the language the IDE is written in? IDEA works (mostly) identically on all major platforms, which is a huge advantage.

It would be great if there was an IDEA IDE for Swift working on Windows, Linux and macOS supporting all the Swift PM languages (Swift, C, C++ and Objective-C(++) where available) similar to PyCharm or GoLand.

Also, unifying all the IDE language specific work (syntax, autocompleting, debugger) in a common language server integrated in the Swift distribution would be awesome.

I don't care much about the language my tools are written with, but I do care for which platform an application was created:
Identical on all operating systems usually means "equally ugly" - and I prefer perfect integration with "my" OS over "it works on a bunch of different systems I don't care about".
For a someone who wants to sell software, it has large benefit to be able to address every customer with a single product, but for a user, cross platform damages esthetics, and in most cases also performance (the major players I know are either JS or Java, not C++).

Xcode, for example, is probably not the best IDE - but imho it's definitely the most beautiful.

5 Likes

I mean, most sophisticated applications already do their own UI, think of any 3D editor or digital audio workstation or image editor.