New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Topic Ideas: The Future of Swift #13

Open
markmals opened this Issue Jan 20, 2019 · 3 comments

Comments

Projects
None yet
3 participants
@markmals
Copy link

markmals commented Jan 20, 2019

Hey, everyone! I loved the first episode and think this podcast is a fantastic idea.

One of my favorite things about Swift is its ability to inspire amazing ideas for what the language could be and could bring for the future. Because of this, the topics I'm most interested in hearing about have to do with future goals and possibilities within and enabled by Swift. I would love to hear about some of the following discussed in an episode about the future, or if there is enough bandwidth, in several episodes covering each of these different topics:

  • Concurrency: I believe concurrency will be the biggest table stakes for programming languages going forward and I think concurrency should be dead simple. I think we're going to see that when the async/await proposal is eventually implemented, but I'd like to hear even more about what that will mean for the language and the different things it will enable.

    • Along with this, I'm fascinated by the actor model and can't wait to have actor support in Swift, but the concept is pretty complicated and hard to explain. I'd love to hear someone with a lot of experience using the actor model talk about how actors work. I'd also love to hear someone explain how actors could be used in common Swift scenarios (GUI development, server-side development, etc.)
  • Self-Hosting: I've seen the idea of a self-hosted compiler floated a few times before and the work Robert and Harlan have done with LLVMSwift is very interesting. What would a potential roadmap for a self-hosting Swift compiler look like? What would the architecture of a self-hosting compiler look like? What unique features of Swift would make it a great tool for writing a compiler? What features is Swift missing that would need to be added before the compiler team could conceivably start on a self-hosting version? Would one even want to tackle a self-hosting compiler if it would depend on more C++ code (LLVM) or are there ideas out there for rebuilding the entire toolchain, including LLVM, from bottom up in Swift? If so, what would someone building a new generation of compiler infrastructure want to implement differently than LLVM (i.e. what new ideas have come to light since the inception and design of LLVM)?

  • Other Language Interoperability: One of Swift's greatest strengths is its ability to leverage the decades of code built on C and Objective-C via incredible interoperability that makes old code (mostly) a pleasure to use in a Swifty way. Will this interoperability come for more languages in the future, especially once the ABI is stable? Are there any sort of efforts to make more languages compatible with each other, even from the LLVM side of the project? I've seen #[repr(swift)] and extern "swift" pitched inside the Rust community and I believe better interoperability (even if it is just with languages that compile directly to machine code or use LLVM at first) would be a huge bonus for the language.

  • Dynamism: There's been a lot of discussion in the Apple programming community from Swift's inception about dynamism in the language. Most of this seems to be coming from people familiar with (and reliant upon) the Smalltalk-style message passing present in Objective-C. There were some mentions of dynamic/reflective futures in Joe Groff's talk at Swift Summit, but I get the sense that the core team, and the community at large, are more in favor of static solutions when possible. I'd like to hear opinions about introducing Smalltalk-like dynamism to Swift (pro/con) and and possible plans for or against that going forward, outside of Objective-C interoperability (i.e. @objc).

  • Swift Package Manager: What is the future of the Package Manager? What new tools could be built to support the Package Manager? Could the Package Manager support other languages, besides Swift and the C family, in the future (re: Other Language Interoperability, above)? Would it be possible to build a central repository that could keep track of all the decentralized sources (for an "App Store of Frameworks," if you will)?

  • WebAssembly: What will it look like once Swift gains WebAssembly support as a compilation target? Server-side web development is a big focus of Swift right now, but once WebAssembly realizes its full post-MVP feature-set, client-side web development will also become an option. What kind of tools and frameworks do you see becoming possible once this is a reality? Do you foresee this opening up a new era of "write once, run anywhere" once Swift supports native and front/backend web development? How will we be able to use features like Codable to our advantage once we can use Swift client-side, on both the web and mobile devices?

I would love to hear discussions on each of these topics, as these are the things that fascinate me the most about the language and community. If you need help writing show notes, interview questions, research, or any other pre-show prep work for these topics, please don't hesitate to get in contact! Hopefully I'll be able to contribute more in the future. Thanks everyone!

@garricn

This comment has been minimized.

Copy link
Member

garricn commented Jan 25, 2019

Wow this is amazing! Thank you so much for all of this. You seem to have a lot of knowledge and curiousity. Have you considering being a co-host?

@markmals

This comment has been minimized.

Copy link
Author

markmals commented Jan 25, 2019

Thanks! For the time being, I don't think I'll have much time to handle any on-mic duties, but that might be something I would be interested in closer to the second half of this year. I would love to help with whatever preparation is necessary for these topics, though!

@lattner

This comment has been minimized.

Copy link
Contributor

lattner commented Jan 26, 2019

These are all really great topics. I'd love to chat with appropriate guests about these topics!

On the first one, Dave Zarzycki would be fantastic to have on for example!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment