back
11 comments
Though it is underplayed in the release notes, the biggest initiative with Swift 5 is the stable ABI.

Now that the binary interface is locked down, the Swift runtime and standard library can ship as part of an OS. That means that Swift can be used in system frameworks, the runtime support libraries won't need to be vendored in each app, and it opens the door to shipping (non-OS) binary frameworks.

How many MBs are the Standard Library for Swift? If it is 10MB then many user could expect anywhere form 100MB+ savings on their iPhone.

I think I will just wait for 5.1 before taking another look. Not really trusting Apple on how they describe Stable in their recent release.

Someone had an app go from 2.4 MB (compressed) all the way down to 24 KB.

https://twitter.com/BalestraPatrick/status/10885653106916474...

For those of us who struggled with Swift 1 and 2, something else to remember: the pure Swift reimplementation of Foundation was pretty basic (or non-existent), so what we used in the early days was basically the ObjC-based NS* frameworks but in a different language - for the most part.

Nowadays, it's possible to avoid using Foundation for a lot of basic tasks. This is great news for Linux developers (and eventually Windows developers when Foundation is mature enough) because a lot of basic tasks that once relied on ObjC no longer do.

I've been using Swift a few years now and at the start it was a massive pain moving to the new versions (1-2 was awful, 2-3 was bad but at least 3 was so much better it was worth it).

It seems to have stabilised a bit now through 3, 4 and so far as I can tell to 5.

How long does it normally take for a language to mature and stop changing so drastically? Objective C seems to be basically the same as when I first started iOS dev 10 years ago.

Anyone have any insight into the speed other languages have progressed?

I actually like to try to encourage people not to compare Swift's instability period to any expectations people might have based on other languages, because that emphasizes the common desire that APIs should be brought to stability as fast as possible, never to experience another breaking change. I can't express enough how happy I am with the "severity" of Swift's updates. Even if it means breaking changes over a long period, I'm ecstatic to see it, because the more we allow dramatic changes, the better the language becomes (assuming the changes are good and thoughtful, which I think they have been). It gives me hope, because most languages strike me as having many problems.
Objective-C was about 25 years old when the first iPhone was released. Swift is a new language and was intentionally released early to allow users to influence its development.

By the way don’t forget that Objective-C gained and lost garbage collection, gained automatic memory management and changed quite a bit in the last 10 years.

Rust is an interesting one to compare to: it has been public for about 8 years, I think, and the first 5 years was a lot of experimentation. It started to have stability as a deliverable in 2015.

Swift became public in 2014 and, when it was unveiled, we were explicitly told that there would be flux for a few years. It’s pretty much stabilized now.

> Objective-C seems to be basically the same as when I first started iOS dev 10 years ago.

Not quite a counterpoint, but UIKit and the iOS version of FoundationKit have changed quite a bit since the early days.

Go back to the days of OPENSTEP/Yellow Box/early versions of Cocoa, and it's like travelling in time to 10 years before you were born and visiting your home town. It all looks right, but it's all so, so wrong. It's Back to the Future without the feeling that Marty McFly will erase his own existence.

Moreso when you try using an ObjC runtime that isn't based on the work by NeXTSTEP!

Objective C is a language from a different era. I actually like the swift model. I feel like the changes are actually for the better and based on things that users want.
Just to clarify - I totally agree and really love Swift now. Obj-c may be stable, but it's never been a language I love, or even particularly like.