Recorded – watch the full episode on YouTube.
Swift continues to grow rapidly, but do you think Swift Evolution will ever slow down?
Chris Lattner: I think that I would divide it into two sides. One is Swift Evolution for library and one is for language. So I personally would prefer the syntactic sugar proposals to slow way down; there have been a lot of syntactic sugar proposals lately. And I think those have a very high cost. I think I've talked about this before, where when you're missing those boulders and you're missing the big things. It's very concerning to me to add syntactic sugar around the other pieces that may change substantially. And the experience of using them may change substantially when the balls are slammed.
"I mean, let's live for a few more years, if necessary, with slight friction in this case, so that when the right thing happens, the world can be consistent, we can heal, everything can be good, and that future world will be better."
And so if you're talking about async/await, for example, I mean, some people are arguing that we should syntactic sugar other things to try to make existing patterns better. And it's like, "no, no, no, let's just do the right thing." I mean, let's live for a few more years, if necessary, with slight friction in this case, so that when the right thing happens, the world can be consistent, we can heal, everything can be good, and that future world will be better.
But I do think that there are a finite number of boulders. I think that there are things like the ownership semantics and concurrency that are a pretty big deal. Aside from that, I think it will be mostly refinements.
"And I think that the question will be, does the community and does the Swift Evolution process settle? And does it turn into a place where the energy state of trying to get a change in gets higher?"
And I think that the question will be, does the community and does the Swift Evolution process settle? And does it turn into a place where the energy state of trying to get a change in gets higher? And so it's harder and harder to get new things in for the little things. "Okay, look, I can get rid of this comma, or I can get rid of this bit of punctuation. Or look, in this one little case, this one little API can get a little bit nicer." Versus just saying like, "Okay, cool. This is good enough."
I think that getting to that world is good. And I think that comes down to, what is Swift? And I think that if you look into the C community versus the C++ community, you'll see this division. The C++ community it's like shove more stuff in. Like C++20 is coming. And it has a tremendous number of crazy, large-scope features that many people are concerned about.
The C community is very happy with saying every few years we'll talk about adding a small thing, and let's not undermine the value system of C, let's stay true to what we're good at. And I think that, hopefully, Swift will get closer to that. And this will cause more and more and more things to be pushed into the library instead of into the language. But we'll see, I don't know.
Paul Hudson: We're all going to find out. It's certainly the case that, as you said, you can add more and more sugar for what you call the gravel, right? And that's nice. It's solves short term problems, but if there are boulders that land that make the gravel irrelevant, there's no point, you're just adding clutter for the future.
Chris Lattner: Yes. Well, one of the analogies I like to use is we're building this house of Swift. And so you have expressions, you have declarations, you have generics, you have functional programming, you have all these bricks that you're building your house out of. And so, if you have a brick coming that has concurrency, you have a brick coming that is ownership. You have a brick coming that is property wrappers or one of those bricks.
"The C community is very happy with saying every few years we'll talk about adding a small thing, and let's not undermine the value system of C, let's stay true to what we're good at. And I think that, hopefully, Swift will get closer to that."
Property wrappers goes back years to a very early proposal. If these things are coming, but you keep throwing things in, well, suddenly the bricks don't fit in as well. And then you end up with a really weird house that has drafts. And you have lots of bad things that happen. And, we don't want to be in that world.
And so, even when you get all the bricks in, then you're less of this question of how much plaster do you put on the outside of the house, and how many layers of paint and wallpaper and other things you put. And you don't want it to be the case that you look back 20 years later, and you're like, "Oh, wow, I can see it back in this generation that they had purple wallpaper, and then they had a shag rug here, and then they had this here."
It's better for it to be the theoretical ideal of it popped out of the oven all at once. And it was self consistent with itself, and there's no history showing.
And, we can never have that. But the farther away we get from that, the worse it is for the community.
This transcript was recorded as part of Swiftly Speaking. You can watch the full original episode on YouTube, or subscribe to the audio version on Apple Podcasts.
SPONSORED ViRE offers discoverable way of working with regex. It provides really readable regex experience, code complete & cheat sheet, unit tests, powerful replace system, step-by-step search & replace, regex visual scheme, regex history & playground. ViRE is available on Mac & iPad.
Link copied to your pasteboard.