Today Swift 1.2 was released as part of Xcode 6.3 beta. This beta release includes a significantly enhanced Swift compiler, as well as new features in the Swift language itself. For the complete list of changes, read the release notes. This blog post will focus on the highlights.
If you’re into Apple development, you might as well get used to Swift.
It seems that the first link requires an Apple ID to read it.
Not sure I really fancy switching to a language that will keep breaking my code.
I love that they dare do this – no other language designer would ever dream of breaking existing code.
But this is in the spirit of LLVM. They are happy to break existing code as long as the breakage is documented and a migration path exists. They even include a migration automator.
This means a little bit more work when upgrading for everyone (but it’s not like it happens often…), but it also means that they can keep Swift lean and mean in the future.
This may not be for everyone, but I think if you look at the accumulated bloat in other platforms, this is a good thing.
Edited 2015-02-10 10:09 UTC
LLVM is a library, not a language. Breaking changes in libraries are usually less bad, but even here if you do it often enough you might see users migrate away.
I’m sure that was the same reasoning Python had when they broke compatibility between 2 and 3. The thing is, Swift is aiming at replacing Objective C as a systems language, and the broader usage of a language the greater the need for predictability and stability.
There is nothing more annoying in this world than your code stopped working because someone else decided you wouldn’t mind if you upgraded it. Thus such things should be very rare and you should expect that a significant portion of coders might simply decide they can’t be bothered – like what happened to Python.
Edited 2015-02-10 11:08 UTC
But now you’re comparing apples to snakes, so to speak.
The Swift changes are going to be small and incremental, well documented and there’s a tool to automatically migrate.
The *entire point* is to avoid huge breaking changes like Python3 and bloated accumulations like C++.
I absolutely think they’re doing it right.
(NOTE: I just upgraded two substantial iPad apps in the new Xcode beta and had zero problems with the swift changes – definitely no such thing as silent breaking changes.)
Don’t forget the D language.
They too are “break-happy”. I strongly suspect it’s holding back uptake of D.
Sure, that compiler bug has been fixed, but you’ll need to update your code to get it to build…
D is thriving because of it.