Swift 5 Released (swift.org) 56
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.
Good thing is, can deploy to older iOS versions (Score:4, 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.
Re: (Score:2)
Still using iOS7 too, on iPhone 4.
That's pretty old man... (Score:2)
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.
Re: (Score:2)
Because he's on an iPhone 4, so iOS7 is really about it. But then again, you're also talking about a phone that' was released nearly a decade ago.
For a while until I finally upgraded I was rocking my launch day iPhone 4s still on the original
Re: (Score:2)
The newer iOSes are visually ugly. Especially the iBook App has no longer a true "book mode".
Re: (Score:2)
And yes, I know about that. It happens on "no password day". Look it up.
iOS 11 old? I still have iOS 7 users (Score:2)
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
Re: (Score:2)
I've kept my phone and iPad on iOS 10 because I haven't seen any reason to upgrade them. The other week I changed mobile carriers and I had to update my iPhone to the latest release and I haven't seen a positive thing about the move other than having my phone work with the new carrier. I have a 5s because that size of phone suits my needs. I'm sure that there are a number of security fixes in there that are good too.
Lately I've been seeing a number of apps requiring iOS 11 or even 12. These are apps that ar
Re: (Score:3)
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 App
Re: (Score:3)
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.
I can't wait! (Score:3, Informative)
Re: (Score:2)
Re: (Score:2)
Re:I can't wait! (Score:4, Informative)
Re: (Score:3)
Re:I can't wait! (Score:4, Insightful)
Re:I can't wait! (Score:4, 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.
Re: (Score:2)
Re: (Score:1)
yeah the C++ way is awesome, where design mistakes never get fixed and eventually people just stop using it for most purposes.
Re: (Score:3)
Re: (Score:3)
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.
How is it forced? (Score:4, 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.
Re: (Score:3)
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.
Re: I can't wait! (Score:2)
Re: (Score:2)
On the other hand, while iOS/macOS don't have the biggest marketshare, they do have the users with the most cash.
So if you want to code for a living, you can't ignore those users.
Re: (Score:2)
The number of jobs for "badass Linux kernel hacker" is much lower than "app developer for iPhones, iPads and Macs".
UUIDs (Score:2)
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 b