Apple desires some level of stability in the language and its libraries, especially now that ABI stability is a thing.
It might just be a perception problem, but I find myself asking the same. Certainly some time is spent writing frameworks such as SwiftUI, but I think there should be more visible progress on “big” features such as move-only types, async/await, or improvements to generics.
I think perception is definitely an issue. From a user perspective of Swift it's very difficult to know what the roadmap for the language is in the short/long term right now. We know that the diagnostics are being worked on, and there is something going on with the ownership model, but progress on that is unknown.
Release schedules are also unknown and are hidden away because of having to coincide with Xcode release schedules etc (which only Apple knows). Other languages, like Rust (as that's the example being used here) have a predictable release schedule so users can plan in advance for any changes they might have to be aware of, but with Swift we know that 5.2 will be coming out this year but that's as much as we know, it could be WWDC time, earlier, or even later.
I do realise that Apple does not owe it to anyone but their shareholders and until software tooling or software R&D expenditures were deemed to be an impact to revenues and profits, I doubt investors would shout for data.
Apple is improving their platform, Apple is investing in Xcode and Swift, etc... that is undeniable. Could they be doing a lot more or not? Impossible to know since nobody outside of Apple has any visibility on any data from which something concrete could be inferred. So wild speculation, hype, and FUD (“oh no they know native apps are bound to die so they limit the investment!&!&”) abound.
If Apple only cares about its own platforms, then why bother to make Swift open source in the first place? Just to get some attention and (free) support from open source developer enthusiasts? But then again, if Apple doesn't care to support those developers anymore, why bother to make it open source?
At least, give some real roadmap (read: promise) on Apple platforms, plus Linux. Aren't they the main target for making Swift open source? Then let the open source community does the rest e.g. Windows and BSDs. But if Apple doesn't seem to seriously care about Swift development progress, I think the open source community would take back their support and return Swift back to Apple.
I find it crucial for a language to write its own compiler. Otherwise you may end up with core developers with very little Swift experience!
Additionally, I think there is a lot of C++ spill into the language because of this.
Swift being open source makes it easier to understand what the code in the runtime and libraries does and is also useful for debugging. E.g. when using SwiftUI it would help my understanding of the framework if i could see how some things are actually implemented.
It's great for marketing. We will probably never know the whole story, but making the platform attractive for developers is crucial, and open source is a big plus for many coders:
If Linux had been released as closed source, nearly nobody would even know it today.
My, maybe somewhat heterodox, thoughts on this are that Apple open sourced Swift because they thought that with that move they could just naturally get community involvement and benefit from a better Swift language in the long term, as has been the case for most other open source language.
Unfortunately, because Apple doesn't have a long tradition of open-source development, they underestimated the amount of effort that goes into maintaining a healthy open-source community, and made some key mistakes that meant that this effect didn't materialise as expected, such as:
- not prioritising non-Darwin platforms and/or non-mobile applications enough
- not prioritising tooling enough; there's enough hackers for which the idea of "you have to use XCode" is ludicrous and the experience in other editors / IDEs is subpar
- focusing on short-termism for marketing purposes instead of long-term health of the language (e.g. shipping SwiftUI before function builders were really thought out)
- reimplementing a package manager with half the functionality instead of building on the effort made by the community (i.e. Carthage, Cocoapods), not prioritising SPM development enough, and initially not even support SPM from within XCode
- not providing a clear road map / direction for Swift development
- not enough attention paid to fixing bugs in the compiler (some of them have been open for years)
- tying Swift release schedules to XCode
- patenting Swift features (that one really turned off a lot of developers)
- making it too difficult to compile the Swift compiler (to this date, you basically need to mine this forum for the right set of command line switches and it still takes hours and a lot of RAM), and not rewriting it in Swift in order to lower the barrier of entry for contributions
I think the wider developer community has refused to accept Swift (after some initial positive reactions because Swift does bring some good ideas to the table) and probably Apple has realised that and secretly accepted that it's just going to be a macOS/iOS language. But that's just my guess and who knows.
Perhaps that's the reason Chris Lattner left? Who knows.
Why are you looking at a gift horse in the mouth? Apple is making the source open, is paying its staff to maintain the open-source repositories and shepard the development of the code, not all of which is directly in its interests other than to have a robust language for its use, work on the code for the compiler and supporting infrastructure in the open, and is allowing contributions outside developers choose to make in a controlled manner, through the evolution process.
If you want a roadmap for Swift itself, keep up on the evolution forum. And, for each planned release, there are goals that are established at the beginning of the cycle for that release, through the evolution process. Also, if you read the various manifestos on Swift.org, you'll get a general gist of where the direction of the language and infrastructure are going.
This process allows a lot of flexibility for the Apple and the community to adapt priorities to circumstances
The community is picking up ports to Windows, other Linux distributions besides Ubuntu, other operating systems.
What support do you want from Apple that Apple is not already giving?
This is not about moral expectations. Private companies generally do everything they do under the expectation that it will generate revenue (very rarely do they do something because of inherent goodwill); this is no different for Apple than for any other company (at least the way the world currently operates).
But of course, as developers choosing a technology, we have to do our own risk assessments. The case being made here is that in some critical markets, Swift is not the right choice because it doesn't look like a priority for Apple. This is a fair point and it warrants discussion.
Which are those?
As Chris Lattner among others laid out in that first thread, holding those patens and contributing them to the project works in favour of users not against them. Was there some issue with that argument?
I’ve only scanned through the thread now but I also remember when reading it at the time that the patent situation was a non-issue.
Apparently, all kinds of other programming languages are successful without resorting to such tactics; and if "the benefit of the community" really had been the major driver behind this, the patent could have been granted to some independent body tasked solely with the Swift language development and including non-Apple representatives. However, the patent was granted to Apple, as a private company.
Sorry, but this is just corporate BS, and I think a lot of developers see through that.
Maybe, but it's legally binding corporate BS.
In any case, this issue has nothing to do with the stated topic at hand. I'm curious to read more about the differences and similarities between Rust and Swift - since I know almost nothing about Rust.
The patent is legally binding. The "it's for your own good" reasoning is not, at least not until Apple signs something explicit where they agree never to sue anybody e.g. for an alternative implementation of Swift (I think Microsoft did something similar with Mono). It's also worth noting that the thread linked above ended up inconclusive, with a lot of people hoping that Apple would clarify their stance towards independent Swift reimplementations specifically, which never happened.
But yes, that's been discussed in that other thread ad nauseam.
Okay. This thread has somewhat predictably turned into broad venting and speculation, and I'm going to shut it down.
In general, I'm not sure a broad "Swift vs. Rust" thread is a good idea. These sorts of language contrasts can be very interesting if done with a high level of insight into the projects' technical and strategic approaches. Unfortunately, a discussion thread is a poor venue for either developing or presenting that kind of work, and the failure state is not impressive. I don't anticipate allowing another thread like this.
We have several existing threads about the issues covered by the original post. Narrowly-tailored contrasts with other languages are on-topic for those discussions.