This. Resorting to the Any* erasure types feels wrong. This should be fixed.
What would higher-kinded types enable you to do in SwiftUI?
Great to hear folks, Async Await would be a god send just sayin
This is all very exciting! I think expanding the list of officially supported platforms and focusing on evolving the language to enable services will help adoption incredibly. The additions to the core team help show the serious interest for investing in those areas which is exciting!
Can you expand on this at all? Does this refer to additional libraries sponsored by Apple, like Swift Numerics? If not, what changes, in particular, does this entail? Something more than the additional working groups mentioned?
It saddens me that an official and integrated package registry still isn't in the plans. I can think of nothing more important to "cultivate a rich open source library ecosystem".
Again, is there anything here you can go into more detail on? I think many of are aware of ongoing projects like the new diagnostic system due to the blog post, but I haven't seen anything recent on the other areas. Are these new projects, or references to ongoing ones?
Is there anything more concrete you can share about the cadence or intended size of these releases?
Major Swift releases are time-based, happening roughly twice a year. What constitutes a "major" release is one that is based on continuous development on trunk, or
master. Examples of major Swift releases include Swift 4.0, 4.1, 4.2, 5.0, 5.1, 5.2, etc.
While Swift releases are time-based, feature work can (and often) spans multiple releases. When we consider efforts that are longer-term arcs usually there is incremental progress along those arcs in each successive major Swift release. For example, while ABI stability "went live" in Swift 5.0, the work went into that spanned multiple releases. Similarly, some pieces of the ownership model have already fallen in place in stages with the gradually ramping up of enforcement of exclusive access to memory.
When Swift 6 is released it will be a culmination of several longer-arc efforts, but I expect that all of them will have pieces stage in over the intermediate releases.
I hope that answers your question on the size and cadence of the releases. This exactly matches how Swift has been developed since it was released.
While all the work is transparent on GitHub and can be followed along there, it is a good point that some users would like to know more about the efforts that are underway without having the following the blow-by-blow development. To name two specific examples, there is work underway to significantly improve the performance of incremental builds through far more precise dependency tracking, as well as major efforts to improve code completion performance, reliability, and experience.
I think @xedin's blog post on the diagnostics work did a great job of surfacing the investments in that area. My plan was to use the blog to showcase other investments on the tooling experience with Swift, especially when they reach interesting milestones of functionality/improvement that are interesting to share with the community.
I think this means a variety of things.
Broadly, I was speaking that I expect to see more libraries being published to fill in the missing "batteries" in the [cross-platform] Swift story. The creation of these libraries is driven both by individuals and companies, such as in the case of Apple publishing Swift Numerics.
Apple will certainly sponsor more libraries, but I expect that others will do so as well.
One model that is interesting here is how to encourage a broader federation of high quality libraries that cover the needs of a specific domain. For example, the server work group's charter, particularly after it was rebooted to adjust its approach and focus, was to do just this in the server domain. That group acts as stewards to both encourage the development of missing libraries for the server space but also to provide various recommendation levels for those libraries based on their maturity. Through that model we've seen the steady appearance of more libraries in that space that have some amount of oversight for consistency and quality through an incubation process. That model might be really interesting to explore for other domains as well.
A high-quality package registry would be immensely powerful for the Swift ecosystem and remains an interesting direction — and potentially one that fits in Swift 6. GitHub has announced plans to support Swift packages in their registry; that would be a great addition and it will be interesting and informative to see how it gets used by developers.
Unfortunately, a big part of this picture is Xcode and iOS releases the bulk of Swift usage is tied to which would make a timeline and more transparent communication on both useful and appreciated.
On the Swift and Swift’s standard library for Windows and Linux, does Apple plan to financially back this by employing multiple people paid to further develop and maintain those ports (donating money to a Swift foundation for example that employs such personnel or dedicating Apple’s internal employees to this task full time)?
While all the work is transparent on GitHub and can be followed along there
I think the whole community appreciates the level of community transparency to the Swift project overall, I think last WWDC with Combine and SwiftUI and the changes to Swift itself that were kept under wrap until WWDC and then kind of fast tracked through the evolution process one does wonder if there are other internal efforts to improve the developer experience that are needing changes in Swift themselves that we may only see announced by Apple at the next WWDC, part of presentations and tutorials there, etc...
Firstly, thanks to the Swift Team for their continued hard work to push Swift forward to what Swift has become today. It's an effort which has involved a lot of blood, sweat and tears! I know that there are some grumblings sometimes on the forums but everyone really does appreciate how hard everyone back at base is pushing.
I also want to congratulate @compnerd and @tomerd for their well deserved promotions into the core team. Both of your contributions have been outstanding and very welcome. I can't wait to see where you take us next!
@tkremenek thanks for giving us this outline of what's going on in the depths of the ongoing development of Swift. Obviously not everything can't be worked on all at once and priorities have to be planned out and tradeoffs made. I think the direction you have outlined makes sense in the grand scheme of things, even if everyone has their own little feature they are really looking forward to and want sooner than other things.
I do have to raise one point though; whilst its true that everything is out in the open on Github, and its one of the places I look every few weeks to see what's going on, it's still not immediately obvious as to what's being worked on at any one time. A lot of the PRs need some kind of context as to how they fit in to the big picture. I'm not a compiler engineer, and whilst I understand the high level concepts, the nitty gritty is something that alludes me and to tell you the truth I don't really have the spare time to learn.
Whilst I really do appreciate the openness of future plans, what's being worked on now etc. in this post, I think it would be nice to have some place to see what high level features are being worked on at any one time. I'm not saying to use Trello, but something like that which only needs to get updated once every few weeks would be very useful to give context to a lot of the work being done behind the scenes. It would allow the general Swift community, even people who don't actively get involved with the community, to have a quick overall view of what's being worked on, what's in the pipeline, roughly what's being earmarked for what version etc.
I visit the forums fairly regularly and recently I was feeling a bit lost into the overall direction that the language was taking. I understand that this is because the concentration of work has been about under the skin improvements, but that's just not visible to the average Swift user until its actually released or a blog post is written about it (which are greatly appreciated but quite few and far between). I think exposing the under the skin improvements at a high level would give the community a greater appreciation of what's going on and for people like myself, not feel as lost.
Anyway, thanks for jumping in and giving some valuable insights as to what's planned for the next year or so, its greatly appreciated.
I promise I'm about to finish the new draft document about variadic generics... just a couple of sections left to refine!
This announcement excites me more than the release of Star Wars 9 (and I’m a huge SW fan)! Can’t wait for variadic generics!
Can I suggest that this is cross-posted to Swift.org - Blog with an addendum that discussion is invited on this forum thread?
I am fairly new to Swift could you clarify to what domains swift is growing?
There are a lot of options. World domination is not reached yet. Serverless Swift, Swift for game development (if some bigger companies jump on the hype train with their engines), Swift for Web (also called WASM if I‘m not mistaken), support for more operating systems, etc. etc.
I Better start learning
Most excited about investment in Swift LSP. My main blocker towards adopting Swift is the fact that I can’t use vim to edit the code properly.
I would love to use VSCode + vim plugin for ALL my language needs. Not having to be forced to use Xcode as an editor.
Really happy to see Swift's cross-platform support and non-apple use-cases mentioned as a priority here, with @compnerd and @tomerd added as core team members. Thanks to all for your contributions and hard work!
- Faster builds
the only thing I want for xmas