Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

JohnnyW2K1

Suspended
Original poster
Jan 27, 2016
136
154
London, UK
It's pretty insane for a programming language to be on version 4 already. Even a recently invented language like PHP, which is 20 years old this month, is only on version 4. (It really started on version 3, skipped version 6, and is now on 7 -- but it's really 4.)

Python is nearly 30 years old, is hugely popular, and it's still on version 3.

Objective-C, Swift's precursor, is 34 years old and is still on version 2.

They're all great languages, which is why they're still being used.

Why is Swift changed so frequently? Anyone guess?
 
I think they're on an annual cycle, which kind of matches the iOS and macOS annual cycles. The first three cycle updates were significant. 3 to 4 was less significant but they're not ready to claim backwards compatibility going forward. It's only a number.
 
  • Like
Reactions: TokMok3
Objective-C, Swift's precursor, is 34 years old and is still on version 2.

They're all great languages, which is why they're still being used.

Why is Swift changed so frequently? Anyone guess?

You can literally look at the diffs and changes between the versions: there is no need to guess.

Does the fact that Objective-C is on version two mean there's only been two changes to the language through time? No. It's completely arbitrary.
 
Last edited:
Ok, the reason it’s changing so much is apparently because it was released unfinished. It’ll be interesting to see if the major changes slow now.
 
Swift has evolved quite a lot since it's launch a few years ago and in comparison to today seemed to be quite immature with a large set of goals, but unfinished is a weird word to use.

Was PHP unfinished because it lacked legitimate support for OOP for 10 years? Not really. Is Objective-C finished because it hasn't had a major version increment in ever? No.

One of the goals of Swift was to be able to be built by the community around it and respond to the needs of that audience: the point of its release, it's rapid progression, and now focus on ABI stability are all examples of that process in action.
 
Ok, the reason it’s changing so much is apparently because it was released unfinished.

IMO. Swift 1.x was really a semi-finished beta, mainly useful for getting enough public feedback to polish 2.0. Swift 2.0 was finished enough for several large organization to use for porting or developing new high profile apps. However, even though the Swift programming language seemed finished enough to be usable, the libraries and frameworks were a mismatch. Swift 3.0 then mostly cleaned up the interfaces to libraries and frameworks.

4.0 required only a minor tweak to my code, other languages either just failed to do those minor clean ups, or called them a +0.1 or +0.01 release.

So consider 1.x -> a 0.x beta, 2.x -> 1.x, 3.x -> 2.x, 4.x -> 2.1, similar to Python or Obj C. Binary stability and concurrency support will produce the next major increment.
 
  • Like
Reactions: TokMok3
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.