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.
Shit on the floor...I'm Mr. Bulldops!
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
I call Buzzword Bingo.
Next time, can we have an article that doesn't look like a press release?
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!
It feels like it was only a year or two when they announced that Swift 2 was no good, and that Swift 3 would save us all. And now Swift 5? And each new version breaks backward compatibility?
At this point, Swift feels like a very unstable landscape and programming language to get on. No thanks.
Pretty sure it's actually back to iOS10 in fact... If I may ask, why do you stick with iOS7? That is a curious choice. There's a lot of benefit from newer OS versions, and they don't even include anything older than iOS9 on most iOS version share trackers I have seen...
Various versions of iOS 10 - 12 are around 90% of iOS users.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
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
But C has been pretty fucking ABI stable for 30 years, and even most of the earlier issues were a combination of processor changes and attempts at proprietary lockin through standardization. Traditional C when there was still compiler support for it actually worked pretty well for the K&R crowd, as show by the hundreds of MU*s and other software that used it, and only switched when GCC dropped traditional compiler support in 3.1 for a pretty pathetic set of reasons.
8==D~~~
There are many versions of this operator! ;-)
( )( )===={+)~~~ is a strange one but works.
LOL.
Are you serious? "all the way back to iOS 11"? Dude, iOS 11 is barely 1.5 year old!
I do my best to support actually old versions with my apps (for amateur astronomers) - I was able to support iOS 6 until last summer (Apple stopped allowing it), new versions of my apps support as far back as iOS 7, which is not easy if you want to fully support new devices as well, but there are ways to do it. I do get some thank you messages from iOS 7 or iOS 9 users (mainly people with devices such as iPhone 4S, iPad 2 who can't update), so I think that's worth the effort.
Sure, I could go for the majority of users, if I limited to iOS 11 I'd get almost 90% of users and make it much easier for me, but I care about all of my users and try to serve as many as I can. Their devices are perfectly fine, why should they be excluded from new software?
Violence is the last refuge of the incompetent. Polar Scope Align for iOS
In some code you are reading.
https://github.com/twostraws/whats-new-in-swift-5-0/blob/master/Whats-New-In-Swift-5-0.playground/Pages/A%20standard%20Result%20type.xcplaygroundpage/Contents.swift
You are welcome for the link.
Are they still changing the UUID almost every release?
I made a plug-in for Xcode and released it as open source a few years ago. Almost every time an Xcode release came out I'd get a request saying that plug-in stopped working. This is because as part of the configuration of the plug-in you specify the UUIDs of Xcode the plug-in works with. The new release doesn't match and so the plug-in doesn't work. An error code shows up in the log and it's easy to find out what has happened.
It was like dealing with a bunch of kids. If I didn't have an update done the morning of the release I would get complaints FFS. This despite leaving instructions on how to fix the issue and multiple fixed requests with explanations on the exact same thing. I bet they would complain if their users would do the same to them.