Slashdot Mirror


Swift 5 Released (swift.org)

Ted Kremenek, a manager of the Languages and Runtimes team at Apple, writes: Swift 5 is now officially released! Swift 5 is a major milestone in the evolution of the language. Thanks to ABI stability, the Swift runtime is now included in current and future versions of Apple's platform operating systems: macOS, iOS, tvOS and watchOS. Swift 5 also introduces new capabilities that are building blocks for future versions, including a reimplementation of String, enforcement of exclusive access to memory during runtime, new data types, and support for dynamically callable types.

12 of 56 comments (clear)

  1. Good thing is, can deploy to older iOS versions by SuperKendall · · Score: 3, Informative

    It's great that Swift has finally got ABI compatibility, the main benefit to start it an easier time distributing frameworks that can be dynamically loaded.

    Another great aspect of Swift 5 is that you can still build apps all the way back to iOS 11 (maybe earlier). So you can still convert apps to use the latest Swift without worrying about excluding users that prefer to wait for a while before upgrading (though the practical reality is that after a year, almost all iOS users have upgraded).

    One interesting change that happened with Swift 5 is that it switched internally from storing Strings as UTF-16, to UTF-8 - it helps performance and bridging to languages like C.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  2. I can't wait! by pak9rabid · · Score: 2, Informative

    Oh sweet, another forced Xcode upgrade that will no doubt bust up all my app's existing code and require hours of effort to get back to where I was again! Thanks Apple!

    1. Re:I can't wait! by UnknowingFool · · Score: 3, Informative

      Did Apple hide this from you? I mean you developed apps using Swift fully knowing it wasn’t ABI stable. And now it’s Apple’s fault for making it stable. As far as I know you could have kept using ObjC.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
    2. Re:I can't wait! by pak9rabid · · Score: 2

      Well, they sure weren't very upfront about it not being ABI stable in the past. I even recall them going so far as to say version 4 would be the last version to break backwards compatibility.

    3. Re:I can't wait! by UnknowingFool · · Score: 3, Insightful

      I only coded briefly in Swift 2/3 and even I knew it wasn’t ABI stable. That was one of the complaints in why the Swift app size was much larger than ObjC versions. Sorry if this wasn’t clear to you but it is always a risk with a relatively new languages that they aren’t stable for a while. Even older languages break compatibility with new versions. Java 9 breaks a lot of things, and Java was 15 years old by then.

      --
      Well, there's spam egg sausage and spam, that's not got much spam in it.
    4. Re:I can't wait! by Anubis+IV · · Score: 3, Informative

      Well, they sure weren't very upfront about it not being ABI stable in the past.

      Other than dropping by your home to deliver the news in person, I honestly don't know how they could have been more up front about it. They talked about it in a keynote, WWDC sessions, written roadmaps, e-mail lists, tech podcasts featuring Apple engineers as guests, and other documentation. Hell, I've never even coded a line in Swift and I felt like I couldn't avoid the information had I wanted to, simply because it was constantly coming up in software development circles.

      Now, that doesn't change the fact that the plans have indeed changed over the years. I think I even remember them suggesting that Swift 3 would be ABI stable at one point, which clearly didn't end up being the case. But they've been keeping people in the loop all along and explaining the delays. Even so, most of the language reached ABI stability in 4.x and earlier, so the benefits of full stability in 5.0 are somewhat muted.

      version 4 would be the last version to break backwards compatibility

      Given that the only people who won't be able to run Swift 5 code are the ones whose devices won't have support for iOS 13 (i.e. devices from likely 2013 and earlier), this only affects organizations supporting apps on unsupported hardware from 6+ years ago (i.e. a vanishingly small number of organizations, at least when it comes to mobile). If you're a developer in that space, you're already familiar with the hassles associated with supporting outdated hardware, such as needing to link against outdated libraries and frameworks or using an older version of a language. It's the sort of stuff we have to do all the time in industry, so I'm not sure why anyone would be bothered by it.

    5. Re:I can't wait! by squiggleslash · · Score: 2

      You didn't?

      Java's fairly notorious for changes that break things. PHP doesn't, and it's the general consensus it's a hot mess because PHP has too much stuff that really should have been changed more than a decade ago but wasn't because of backward compatibility.

      C... eh. I don't want to dunk on C (please see previous 6,192 times I've dunked on C) but the aim right now is not to make C any better, because there'd be a risk that you'd encourage people to program in it. C++ just adds more features with every new standard, I wouldn't suggest that's a model for anything. Which leaves Ruby which is a niche language.

      I do agree some level of standardization would be good. The problem is the computer industry is really good at putting out half baked half finished programming languages. Just like everything else we do. So it's unrealistic to expect Swift to be any different.

      --
      You are not alone. This is not normal. None of this is normal.
    6. Re:I can't wait! by angel'o'sphere · · Score: 2

      Java's fairly notorious for changes that break things.
      Actually no ...

      I use Java since 20 years and never had that problem. However there are APIs or methods in classes that get "deprecated", but they are kept around for years.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  3. How is it forced? by SuperKendall · · Score: 3, Insightful

    Oh sweet, another forced Xcode upgrade

    How is this forced? You could keep using the current version of Xcode for quite a while.

    In fact even after upgrading, nothing says you have to move to Swift 5 - you can keep compiling against the older Swift versions, and upgrade when it makes sense to you.

    I've been using the beta version of Xcode off and on, and it didn't seem to break anything - I was able to compile my existing projects just fine with no changes.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:How is it forced? by phantomfive · · Score: 2

      How is this forced? You could keep using the current version of Xcode for quite a while.

      No haha. Trying to remain on older versions of Apple software is a pain and not supported scenario. After a few OS upgrades, it won't work at all.

      --
      "First they came for the slanderers and i said nothing."
  4. Re:BINGO by HiThere · · Score: 2

    I'm sure it *is* a press release. Probably based on one posted on a web page.

    I didn't follow any links, because every time I've checked swift didn't work reasonably on Linux. (IIRC, there were officially declared ways to do it, but scant documentation of them, and little explanation of what you'd actually end up with if you did them. And no reports from any Linux users who had done that and were happy with the results. Objective C had much better compatibility...of course, that one didn't start with Apple.)

    FWIW, I've always regretted that Objective C didn't have a better Linux support community, one good enough that learning the language would have been worthwhile. Swift evokes only a shadow of that reaction.

    --

    I think we've pushed this "anyone can grow up to be president" thing too far.
  5. Re:BINGO by phantomfive · · Score: 2

    FWIW, I've always regretted that Objective C didn't have a better Linux support community,

    Agreed, it was a great language.

    The noisiest complaint people had of Objective C is that it had all the baggage of C. But then swift has all the baggage of Objective C and C, but without the elegance of Smalltalk. Oh well.

    --
    "First they came for the slanderers and i said nothing."