
Swift 2.1 - ingve
http://www.russbishop.net/swift-2-1
======
blazespin
Wake me up when they open source it like they said they were going to.
Proprietary languages are evil acts of lock-in committed against unwary junior
developers. Swift is a great language, but I'd really like my skills to be
somewhat transportable.

~~~
webwielder2
>Swift is a great language, but I'd really like my skills to be somewhat
transportable.

Huh?

~~~
jaywunder
I think OP is talking about multi platform code. Swift isn't "write once
compile anywhere" like C or C++. This is also the reason I haven't used it
yet, although I read the swift book and I'm looking forward to multiplatform
capabilities (if that were to happen)

------
s_kilk
Looks like a good set of changes.

A question for the more switched-on among us: has there been any word on when
Swift 2 will be open-sourced?

~~~
xenadu02
Author here; my understanding is the compiler team is hard at work doing some
necessary house cleaning and reworking. It is something they've wanted to do
for some time.

No official word from Apple though.

~~~
madeofpalk
Chris Lattner said on reddit that they're on track to deliver when they
originally promised, by the end of the year.

~~~
blazespin
Link?

~~~
ghshephard
[https://www.reddit.com/r/swift/comments/3kbjjn/so_swift_isnt...](https://www.reddit.com/r/swift/comments/3kbjjn/so_swift_isnt_open_source_yet_then/)

~~~
blazespin
Ah good news. Hopefully there is a standards track for it as well.

------
melling
Apple is evolving Swift quite fast. It's a great language. I like that they
adopted Go's _ to ignore unused variables. Xcode 7 also recommends where to
change var's to let's where you don't mutate the value after initial
assignment.

Anyway, let's hope the developer community jumps onboard for the ride. For
anyone interested in learning Swift, I've accumulated just under 1800 Swift
urls in the past 15 months:

[http://www.h4labs.com/dev/ios/swift.html](http://www.h4labs.com/dev/ios/swift.html)

~~~
seivan
Actually, some of those features are still buggy when operating to Obj-C land
:)

    
    
          //Warning if you don't use let :-) 
          let array = NSMutableArray(capacity: 50)
          array.addObject(notification)
    
    

I am aware that the let essentially means I can't reassign the variable, and
does not have anything to do with the mutability of the class. Since it's a
class and not a struct.

However, what I am saying is that Apple needs to somehow add the keywords to
the container classes imported from Cocoa, this is manually I guess.

I wonder if adding a mutating keyword on the declaration would help

    
    
        public mutable func addObject(anObject: AnyObject) mutable
    

That way that should throw a warning on a let usage. But that keyword only
exists on Swift. They would have to go through all of them like they did with
nullable keyword.

If you're wondering why I am using CFArray -> performance. Structs are pretty
slow since you'd have to copy it from the dictionary to mutate and then insert
into the dictionary again.

Though, those numbers were with Swift 1. Will try with Swift 2 again, but
given the nature of immutability, I suspect it will still be slower.

Now that I think about it. I might make my own generic structs that uses
NSArray/NSDictionary internally. Though I wonder if you can pass structs by
reference instead of copy, that would be more useful.

~~~
xenadu02
Remember that Swift collection types have the _semantics_ of copy-on-write.
Under the hood they actually only copy if the collection is non-uniquely
referenced.

An Array<T> is a struct but uses a storage reference type under the covers. In
theory the standard library is actually free to make common slices of arrays
share storage so pure additions don't even require copying but I have no idea
if it is actually implemented that way (neither String nor Array guarantee
contiguous storage)

~~~
hellofunk
It definitely changes how a developer works in a language if they know they
can depend on this kind of implementation. In Clojure, knowing up front that
all data structures have shared persistence allows you to do things that you'd
never consider in a language where this wasn't guaranteed.

I think Swift could greatly enhance its power in the functional paradigm if
indeed it did what you describe, but also making this clearly known to
everyone who uses it.

------
namelezz
Anyone knows of a safe way to use Selector in Swift. I am not a fan of using
string though.

~~~
tl
I've been experimenting with python scripts in my build process to create
structs of static strings for Apple APIs that require strings (ex: Storyboard
filenames/identifiers, Core Data entity/properties, Image filenames) for
compile time safety.

I haven't done selectors yet partially because I use relatively few of them
and partially because parsing code is slightly harder than file system walks
and xml parsing.

------
sobinator
Swift is a language designed from its core to build apps that work well for
Apple hardware. I understand why developers gag at its quirky paradigms, but
at the end of the day, if you play by the rules, you end up with an extremely
valuable product. The positives outweigh the negatives, open source or not.

~~~
cageface
The problem is that it's actually very unlikely you'll wind up with a valuable
product. The odds of getting on a user's home screen get longer every day and
if you're not on the home screen you might as well not be on the phone at all.

I would like to see Swift eventually become a general purpose programming
language useful outside of Apple's niche but it's got enough baggage from its
ties to UIKit & ObjC I'm not sure how likely this is to happen.

------
jhallenworld
>String interpolation now allows string literals.

But do editors highlight this properly? (JOE 4.1 does).

