News for hackers. Stuff that matters.
Re:Swift: Challenges and Opportunity for Language and Compil... by mike_hearn on Sunday December 18, 2016 @07:35AM (#13205583)
I'm not sure I agree.

My girlfriend has decided to learn programming. She started with Swift because she wanted to write iOS apps. The course she's using targets Swift 2 but her install is Swift 3, or something like that (I haven't looked into it much).

XCode constantly flags stuff like x++ being replaced with x += 1. Really? Surely that's the kind of decision you make before version one of a language, not years after release. Why this pointless churn?

If these sorts of totally-indecisive deprecations were rare then you could overlook them, as otherwise Swift is a rather nice language. But they're everywhere. Even in trivial examples intended for beginners line after line of code gets the yellow deprecation warnings. "What does deprecated mean" was literally one of the first questions my girl asked me as she started out learning programming, which is ludicrous. You shouldn't be encountering deprecation warnings over and over when targeting a brand new platform using a teaching course barely a year old.

Re:Swift: Challenges and Opportunity for Language and Compil... by pivo on Sunday December 18, 2016 @09:16AM (#13205856)
If your girlfriend wants a stable language for iOS development she should use Objective-C. Apple have been very clear about the fact that Swift is evolving and that there will be breaking changes.

Changes to Swift are hardly indecisive or pointless. A very clear rationale for removing the ++ operator was laid out here: https://github.com/apple/swift-evolution/blob/master/proposa....

While these changes may be painful now (though the removal of the ++ operator seems minor to me), they should result in a stronger and simpler language in the long run.

Re:Swift: Challenges and Opportunity for Language and Compil... by mike_hearn on Sunday December 18, 2016 @09:25AM (#13205880)
The course she bought (without my input btw, she's pretty independent!) uses Swift. And that's probably right. Swift is a much nicer language than Objective-C, much closer to modern languages and has far less of the C heritage poking through. Even with the deprecation warnings, it's probably easier to deal with.

Removing x++ is indeed minor, which is why it's so curious. Sure, there are arguments for removing it. But there are also arguments for minimising language churn and just living with these things.

Re:Swift: Challenges and Opportunity for Language and Compil... by mmariani on Monday December 19, 2016 @05:19AM (#13210558)
You could give a little help to your girlfriend. How about installing for her the required swift version by her course with swiftenv? This way she could learn the basics without getting nagged by Xcode. Later she could read up the differences and port her code to practice.
Re:Swift: Challenges and Opportunity for Language and Compil... by timjver on Sunday December 18, 2016 @12:52PM (#13206727)
Living with x++ wouldn't be terrible, but I don't mind having to make changes to my code now that Swift is still very new if it ends up becoming a better language. Teaching x++ and ++x to beginners can be quite a pain.
Re:Swift: Challenges and Opportunity for Language and Compil... by hota_mazi on Sunday December 18, 2016 @11:28AM (#13206332)
It feels backward to modify the language in a way that makes it less functional: replacing a construct that returns a value with one that returns Void.

Definitely going against the general language trend, there.

And the justifications to remove ++ are downright bizarre in my opinion.

Re:Swift: Challenges and Opportunity for Language and Compil... by boterock on Sunday December 18, 2016 @09:02AM (#13205830)
The c style for loops were also dropped. now you do `for idx in 0...5` or you can also do `for idx in 0..<5` I think this makes clearer if you want to include or exclude the last index in the loop.

I think that this kind of break is not that bad, swift is a young language, and there are some things that only after so much testing you realize it could be better.

Swift is 2.5y old, it has just one year being open source, so I don't think these breaking changes as a big deal. It is not in a situation like Python 3. Even the compiler helps you fix it and XCode is very helpful when translating Swift 2 to Swift 3, so it is not that bad.

Re:Swift: Challenges and Opportunity for Language and Compil... by mike_hearn on Sunday December 18, 2016 @09:22AM (#13205871)
Swift development started in 2010, so it's about 6.5 years old at this point.
Re:Swift: Challenges and Opportunity for Language and Compil... by hyperpape on Sunday December 18, 2016 @01:00PM (#13206769)
Which is still younger than Rust or Go, it's probably the youngest widely used language.
Re:Swift: Challenges and Opportunity for Language and Compil... by kibwen on Sunday December 18, 2016 @02:32PM (#13207157)
Rust didn't start real development until 2010, it was mostly notes and incomplete PoCs before then (which I'm sure Lattner was doing for Swift before 2010, and Pike for Go as well).
Re:Swift: Challenges and Opportunity for Language and Compil... by hyperpape on Sunday December 18, 2016 @04:46PM (#13207847)
As I understand it, July 2010 was literally the first commit for Swift in any form (https://techcrunch.com/2014/06/04/apples-new-programming-lan...), as a personal project for Chris Lattner. I think the complete history is on Github now.

Of course, age only tells you so much about the amount of work put into the project, and Rust in particular took a huge amount of conceptual work to get its current model of ownership.

Re:Swift: Challenges and Opportunity for Language and Compil... by danappelxx on Sunday December 18, 2016 @01:45PM (#13206975)
Source?
Re:Swift: Challenges and Opportunity for Language and Compil... by mike_hearn on Sunday December 18, 2016 @02:00PM (#13207034)
Wikipedia.
Re:Swift: Challenges and Opportunity for Language and Compil... by gaurav-gupta on Sunday December 18, 2016 @11:57AM (#13206460)
A month ago, I tried the getting started on Apple's website. Even that had deprecated syntax =:)

Btw, Xcode still doesn't support refactoring Swift code