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

MacRumors

macrumors bot
Original poster
Apr 12, 2001
59,760
23,951



swift-250x250.png
Apple has announced it is on track to release Swift 3.1 in the spring of 2017, corresponding to some point between March and June.

Swift 3.1 is intended to be source compatible with Swift 3.0 and will contain a few enhancements to the core programming language.

Improvements will also be made to the Swift Package Manager, Swift on Linux, compiler, and Standard Library.

Swift 3.1 development should conclude around January 16, 2017 for major changes, at which point Apple's focus will turn to the development of Swift 4.

Swift is Apple's open source programming language for macOS, iOS, watchOS, tvOS, and Linux. Swift 3.0 was released in September with major improvements and refinements to the core language and Standard Library, major additions to the Linux port of Swift, and the first official release of the Swift Package Manager.

Article Link: Apple Details Swift 3.1 Ahead of Planned Spring 2017 Release
 
  • Like
Reactions: keysofanxiety

6836838

Suspended
Jul 18, 2011
1,536
1,325
Swift really was an Apple master stroke. Objective-C was a tough language to master and this is a great language for new developers and those requiring a quick to market solution. I personally moved from C++ to Python on a professional basis and the step change in productivity was magnitudes higher (with C++ integration possible where high performance is required). I appreciate these languages also have their place when it comes to performance, but with a highly optimised compiler/interpreter, a scripting based language certainly has its place.
 

lincolntran

macrumors 6502a
Jan 18, 2010
843
471
Finally; great to hear Apple is doing something right.

Apple is doing a lot of things right. But like all other news sites, MR just chooses to report more negative news bc it generates more activities then positive ones. It's a pretty sad strategy though.
 
  • Like
Reactions: R3k

PinkyMacGodess

macrumors G4
Mar 7, 2007
10,035
5,987
Midwest America.
But having a programming language on a yearly schedule to announce updates is getting ridiculous.

Either that, or I have to stop buying printed books, and companies like Big Nerd Ranch have to start offering subscriptions to their ebooks so that the updates can be had for free for a certain yearly subscription. How about a 'lifetime update' ebook for Swift and Ojc-C for 'x' number of dollars...

I've got several iterations of their books sitting around here. A programming language shouldn't be a 'commodity item'. Isn't that part of what killed Java? All I kept hearing was deprecated functions and syntax from one release to another, and them being dropped. That's hard to follow... Makes for few friends...
 

PizzaBoxStyle

macrumors 6502
Dec 11, 2014
321
412
Apple HQ Cupterino Spaceship
Swift really was an Apple master stroke. Objective-C was a tough language to master and this is a great language for new developers and those requiring a quick to market solution. I personally moved from C++ to Python on a professional basis and the step change in productivity was magnitudes higher (with C++ integration possible where high performance is required). I appreciate these languages also have their place when it comes to performance, but with a highly optimised compiler/interpreter, a scripting based language certainly has its place.

Objective-C actually has a pretty small and simple set of rules compared to Swift.

The challenging things with Obj-C, IMO, are the idea of message passing instead of calling functions/methods, and the funky syntax.

Once you get a handle on both of those, you're good to go (as far as languages, then there's the frameworks/design patterns you need to learn).

On the other hand, Apple's Swift book and the video courses I've done on Swift for each major release... the features and rules seem suffocating. Like Swift looks so much cleaner and easier at first, but once you really tour the language it gets a lot harder and complex, quick. Because Swift doesn't trust you the programmer, it trusts only the compiler.

And honestly, I think even though Apple pushes it, it's a really bad idea to start any project in Swift right now. There's eventually going to be some techtonic shift that's going to change the game entirely. Or in other words, what you see and learn today, won't apply tomorrow. They should be marketing this as a hobby and the default language for iOS and Mac dev for now.
 
  • Like
Reactions: PinkyMacGodess

PinkyMacGodess

macrumors G4
Mar 7, 2007
10,035
5,987
Midwest America.
Objective-C actually has a pretty small and simple set of rules compared to Swift.

The challenging things with Obj-C, IMO, are the idea of message passing instead of calling functions/methods, and the funky syntax.

Once you get a handle on both of those, you're good to go (as far as languages, then there's the frameworks/design patterns you need to learn).

On the other hand, Apple's Swift book and the video courses I've done on Swift for each major release... the features and rules seem suffocating. Like Swift looks so much cleaner and easier at first, but once you really tour the language it gets a lot harder and complex, quick. Because Swift doesn't trust you the programmer, it trusts only the compiler.

And honestly, I think even though Apple pushes it, it's a really bad idea to start any project in Swift right now. There's eventually going to be some techtonic shift that's going to change the game entirely. Or in other words, what you see and learn today, won't apply tomorrow. They should be marketing this as a hobby and the default language for iOS and Mac dev for now.

My opinion of Swift was that it is very regimented. You have to say the right thing, in the right way, or you get nothing.

It seems too hard, too 'fascist'. You have to do it their way. C was all about getting things done. If you really needed something done, you could lift heavy things with a small amount of code, and the language wasn't like a 'grammar Nazi', thumping you for every little thing. My first program in Swift wouldn't run because I did some little stupid thing wrong. I was surprised it cared. I was put off by it's attention to syntax details. It smacked of archaic languages like BASIC, and perhaps COBOL. YUCK!!!

I'll still rather learn Obj-C, thanks...
 
  • Like
Reactions: PizzaBoxStyle

Joe Rossignol

Senior Reporter
Staff member
May 12, 2012
827
2,867
Canada
Apple is doing a lot of things right. But like all other news sites, MR just chooses to report more negative news bc it generates more activities then positive ones. It's a pretty sad strategy though.
I respect your opinion, but it is entirely false. We do not publish doom and gloom stories for clicks or to fulfill any other agenda. We truly try to report any news that is of any significance—good or bad. We really appreciate when our readers keep up informed by sending tips to tips@macrumors.com.
 

KALLT

macrumors 603
Sep 23, 2008
5,333
3,363
On the other hand, Apple's Swift book and the video courses I've done on Swift for each major release... the features and rules seem suffocating. Like Swift looks so much cleaner and easier at first, but once you really tour the language it gets a lot harder and complex, quick.

As a learner, I have been struggling with generics and protocol-based programming quite a bit. I started learning a bit of Objective-C to understand older code examples and I find Objective-C a lot more manageable and comprehensible in certain ways, despite all the punctuation and duplication. At first I also really liked the type inference of Swift, but now I am becoming more annoyed by it, as I have to check the type explicitly every time. That Xcode is erratic and often not showing type information makes it that much worse.

Despite this, Swift’s strong typing, usage of value types and the Optional type are actually quite helpful to learners such as me. It certainly has a major appeal to it. I also don’t even want to know how people had to deal with manual reference counting or the ‘id’ type.
 
  • Like
Reactions: PizzaBoxStyle

dantastic

macrumors 6502a
Jan 21, 2011
572
678
Having been an ObjC developer for years currently transitioning a few projects to Swift I do think Objective C is a much nicer language. Objective C is quite verbose so when future-me reads my code he can understand what is going on.
I find Swift very hard to digest. You can't just glance over a function and see what it does.

With all the strong typing and stuff, I think that works well in a server environment but I don't think there's any value in a client app. Parsing JSON should not be hard, nor should it ever require a 3rd party library to do so.
 
  • Like
Reactions: PizzaBoxStyle

CarlJ

Contributor
Feb 23, 2004
6,847
11,869
San Diego, CA, USA
My opinion of Swift was that it is very regimented. You have to say the right thing, in the right way, or you get nothing.

It seems too hard, too 'fascist'. You have to do it their way. C was all about getting things done. If you really needed something done, you could lift heavy things with a small amount of code, and the language wasn't like a 'grammar Nazi', thumping you for every little thing. My first program in Swift wouldn't run because I did some little stupid thing wrong. I was surprised it cared. I was put off by it's attention to syntax details. It smacked of archaic languages like BASIC, and perhaps COBOL. YUCK!!!
If your reaction to a programming language is that it cares too much about getting details right, programming is not for you.
 
Last edited:

mijail

macrumors 6502a
Oct 31, 2010
560
138
But having a programming language on a yearly schedule to announce updates is getting ridiculous.

While they keep compatibility and/or provide easy migration possibilities, and use the changes to improve the language and its environment (compiler, etc), I don't see how the updating could be seen as a negative.

Either that, or I have to stop buying printed books,

You are (1)BUYING (2)PRINTED books? In 2016?

Even in the 90s that felt to me like a bad idea.

and companies like Big Nerd Ranch have to start offering subscriptions to their ebooks so that the updates can be had for free for a certain yearly subscription. How about a 'lifetime update' ebook for Swift and Ojc-C for 'x' number of dollars...

I use a service similar to what you are asking for, and which actually covers all open-source languages, and lots of non-opensource too. They call it "internet".

How about a 'lifetime update' ebook for Swift and Ojc-C for 'x' number of dollars...

I wonder if doctors have some kind of "lifetime updates" for their books. I know that engineers don't have one, even software engineers. But yet again, this "internet" service comes pretty close.

I've got several iterations of their books sitting around here. A programming language shouldn't be a 'commodity item'.
Isn't that part of what killed Java?

I'd LOVE to know what definition of "killed" did you use there :D
[doublepost=1481539747][/doublepost]To those complaining about Swift changing too much: I really, really can't see what you are complaining about.
Look at this: https://github.com/apple/swift-evolution

There you have the fricking road map of Swift 4 for *next year*, with rationale, with possibility to participate on the development, and at the very least knowing where and why things are going. And not only that: you can see that in fact they are targetting goals of stability even at the ABI level, to avoid problems that have plagued the likes of C++ for decades!

And you are complaining that printed books get outdated??

[doublepost=1481540128][/doublepost]
My opinion of Swift was that it is very regimented. You have to say the right thing, in the right way, or you get nothing.

It seems too hard, too 'fascist'. You have to do it their way. C was all about getting things done. If you really needed something done, you could lift heavy things with a small amount of code, and the language wasn't like a 'grammar Nazi', thumping you for every little thing.

"Heavy things with a small amount of code"... in C, AKA the language without the concept of what a string is?
Please give me an example. PLEASE.

My first program in Swift wouldn't run because I did some little stupid thing wrong. I was surprised it cared. I was put off by it's attention to syntax details. It smacked of archaic languages like BASIC,

Be thankful. Be very, very thankful. In C, your program might have looked like running, only to bomb later in any variety of exciting ways.
Or are you saying that you prefer languages which look easy while they merrily trash your memory because you forgot some hidden assumption in the code?

and perhaps COBOL. YUCK!!!

I'll still rather learn Obj-C, thanks...

At this point I'll be very, very surprised if you have any inkling of what COBOL even looked like.
 
Last edited:

576316

macrumors 601
May 19, 2011
4,056
2,556
Plan to use my first uni summer trying to learn some Swift stuff. Feel like it might come in useful at some point in the future.
 

patent10021

macrumors 68040
Apr 23, 2004
3,413
680
Having been an ObjC developer for years currently transitioning a few projects to Swift I do think Objective C is a much nicer language. Objective C is quite verbose so when future-me reads my code he can understand what is going on.
I find Swift very hard to digest. You can't just glance over a function and see what it does.
lol Swift is light years ahead of Obj-C in terms of readability. Hence why it's easier for new programmers to understand it. Veteran Obj-C programmers who have transitioned to Swift find Swift very clean, readable and modern.

With all the strong typing and stuff, I think that works well in a server environment but I don't think there's any value in a client app. Parsing JSON should not be hard, nor should it ever require a 3rd party library to do so.
3rd party libraries are not required. It sometimes just makes it easier as many libraries for all languages do.

The only advantage Obj-C has right now is that code updates are not required. Understandable of course.
 
ARM based custom chips for Mac!

Are you forecasting a disaster or trying to believe that would be a good thing? If the latter, a good thing for who?

The transition to Intel involved years of key software (not being made by Apple themselves) getting updates to work as well on Intel. Some never bothered to try to make the leap. We don't remember the misery in that very well because there was this thing called Rosetta but there is no Rosetta for Intel-to-ARM. Furthermore, Intel Macs run native Windows too and there remains various software packages important to many that don't have a macOS equivalent. ARM Macs would be very likely to kill that multi-platform compatibility in a single box.

What ARM Macs would do is allow Apple to control the evolutionary schedule of Mac updates themselves. However, it would also depend on Apple giving focus to Macs to spur on such updates, and we see how much attention they pay to Macs now (see the buyers guide recommendations for the whole line). Would the Mac line even survive another core processor migration from mainstream (Intel this time) to niche?

Apple would probably make more profit on ARM Macs too. So if further enriching Apple is important to us, there's a good argument in Apple using Apple chips to make more money.

The "what's in it for us (consumers)?" question generally has weak answers, such that I don't get why "we" think we want this. Sure, some will spin all kinds of benefits that may sound good (via spin) but anyone capable of digging deeper can poke holes in most claims. For example, "ARM = faster" can be true, but faster at what exactly... and what will not be as fast. Win 1-2 speed benchmarks that don't have much real-use benefits while losing 10-12 benchmarks that impact users adversely and all the spin in those 1-2 can't make up for the disappointment in the impacts of the 10-12.

Apple making even more money seems to thoroughly delight some of "us" too- even if it's at us consumer's expense- but I personally like to see Apple prosper by delivering more consumer benefits for us, not by cutting costs/utility/benefits for us (consumers).
 
Last edited:

maflynn

macrumors Haswell
May 3, 2009
71,695
40,879
I've been wanting to pick up Swift, perhaps, after the holidays, I'll buy a book on it and start playing with the language.
 

PBG4 Dude

macrumors 601
Jul 6, 2007
4,050
4,103
At this point I'll be very, very surprised if you have any inkling of what COBOL even looked like.

Nearly 17 years past Y2K and I still have one Microfocus COBOL process that needs to be converted to a more modern language. COBOL compiler costs $25K now.
 

buckwheet

macrumors 6502
Mar 30, 2014
440
483
And honestly, I think even though Apple pushes it, it's a really bad idea to start any project in Swift right now. There's eventually going to be some techtonic shift that's going to change the game entirely. Or in other words, what you see and learn today, won't apply tomorrow. They should be marketing this as a hobby and the default language for iOS and Mac dev for now.

Totally disagree. What you're saying may have been true a year ago, but not today. And to be fair, Swift is actually simple for doing simple things. But if you have more complex requirements, it can also be very flexible, and with that flexibility comes complexity. That's the part that can be tricky to learn.

Another point is that Swift was designed to help write safe, stable software. That's why it's picky about types, nils, and so on. It may be trickier to learn, at first, than Java, but it's easier to make something stable, and harder to get into the strange and mysterious crashes and undefined behavior that you can fall into with Java (or Objective-C)... thus making it easier to write actual software (not just code).
 
  • Like
Reactions: Keane16 and mijail

jeremy.pereira

macrumors newbie
Sep 13, 2016
5
4
Objective-C used to be my favourite language but now I've switched to Swift, I would never go back. It's so much quicker to express an idea in Swift and so much easier to read it later. Not only that but my compiling code is much more likely to be correct.

There have been some mis-steps. Some of them are:
  • The ABI is not defined yet so you can't make a pure Swift shared object library. This was one of the goals for Swift 3 but they blew it by spending too much time implementing WIBNI features suggested on Swift Evolution.
  • An obsession with catching every error at compile time. This leads to nannying constructs in the language that are sometimes more trouble than they are worth. The prime example is access modifiers for object properties and methods. They are a complete mess in Swift 3.
  • Old World snobbery leads to deprecating or perhaps just frowning on features that have been immensely useful in the past. The protocol oriented programming fascism - I mean fashion - is particularly annoying because it leads to people recommending highly convoluted opaque POP code to implement ideas that were quite naturally expressible with classes purely on the basis that Dave Abrahams gave a really cool talk at WWDC 2015 using one example cherry picked for the purpose. Also removal of ++ and -- on the grounds that "some people don't understand them" was pretty bad.
  • The generics system is an overcomplicated clusterfsck.
  • Frequent code breaking changes. At some point developers are going to get really pissed off at having to refactor all their code every time a new release of Swift comes out. This is in complete contrast to Objective-C where there's a good chance that a 64 bit program written for OS X 10.5 will still compile and run today. It doesn't help that each release of Xcode only targets one version of Swift (or exceptionally two, if you are lucky).
Fortunately, the first and last bullet points will go away at some point soon, in fact the last point is probably almost irrelevant already. The fourth point is being addressed slowly, but I think there will always be a problem with points 2 and 3. There's no shortage of people coming on Swift Evolution and saying "I keep making mistake x because of feature y, therefore feature y should be removed".

Anyway, despite all of the above, Swift is still a really nice language in which to write code. and the open sauce means it should get a bit more traction outside of the Apple ecosphere.
 

nextuser

macrumors member
Feb 15, 2016
97
122
So will there ever be real Key-Value Observing? -willSet and -didSet are not the same thing
 

netwalker

macrumors regular
Jul 28, 2007
211
209
But having a programming language on a yearly schedule to announce updates is getting ridiculous.

Swift is still a very young language and therefore is going through iterations quickly. But major languages changes should be stopping soon.

Either that, or I have to stop buying printed books, and companies like Big Nerd Ranch have to start offering subscriptions to their ebooks so that the updates can be had for free for a certain yearly subscription. How about a 'lifetime update' ebook for Swift and Ojc-C for 'x' number of dollars...

I've got several iterations of their books sitting around here. A programming language shouldn't be a 'commodity item'. Isn't that part of what killed Java? All I kept hearing was deprecated functions and syntax from one release to another, and them being dropped. That's hard to follow... Makes for few friends...

And as with most other languages, once you've learned the language and understood the core concepts, there is really no reason to buy printed books or follow courses for every new version any longer. In Java deprecated features are being phased out quiet slowly (too slowly), so you have enough time to upgrade. And BTW, Java is not dead at all. It rightfully is dead in the browser but otherwise it is still very strong.
 
  • Like
Reactions: mijail

PizzaBoxStyle

macrumors 6502
Dec 11, 2014
321
412
Apple HQ Cupterino Spaceship
While they keep compatibility and/or provide easy migration possibilities, and use the changes to improve the language and its environment (compiler, etc), I don't see how the updating could be seen as a negative.

Developer beware. The last time I used their migration tool, my project would not compile afterward. I was trying to show off a little proof of concept that I hadn't worked on in a while. I opened to project in Xcode and it refused to build and run without letting its migration utility run. I finally conceded. It introduce a number of eeeors and screwed it up that I basically just abandoned the code afterwards.

Sadly, since this was just a small little sketch, I didn't bother with source control before letting the utility destroy it. Pretty much all of the stuff I strarted writing in Swift, I think I have abandoned now.

lol Swift is light years ahead of Obj-C in terms of readability. Hence why it's easier for new programmers to understand it. Veteran Obj-C programmers who have transitioned to Swift find Swift very clean, readable and modern.

That's a subjective claim. There are already others on this thread who've said the opposite.

Totally disagree. What you're saying may have been true a year ago, but not today. And to be fair, Swift is actually simple for doing simple things. But if you have more complex requirements, it can also be very flexible, and with that flexibility comes complexity. That's the part that can be tricky to learn.

Another point is that Swift was designed to help write safe, stable software. That's why it's picky about types, nils, and so on. It may be trickier to learn, at first, than Java, but it's easier to make something stable, and harder to get into the strange and mysterious crashes and undefined behavior that you can fall into with Java (or Objective-C)... thus making it easier to write actual software (not just code).

The future of software development isn't this hot poop filled bag of a cranky language grafted onto 30-year-old frameworks. Looking at the landscape, if this is Apple's answer for how apps are going to be developed going into future, they lost. Game. Over.

If this isn't their answer, then there is little reason to actively adopt it now fast and today. To top it all off... My experience was that Obj-C works better with their existing frameworks than Swift does. It seemed to me I was actually gaining very little by adopting it.

Also, re: complexity? I thought Tim Cook told the world at WWDC '14 that Swift made app development so easy "you or I could do it." ;)
[doublepost=1481556011][/doublepost]
I learned Swift with Apple's free iBook. They update it with every new release.

I understood it as he wanted training books like Big Nerd Ranch publishes to be available under a subscription model.

Which they are if you subscribe to Safari Books or something similar.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.