the runtime. Original issue with swift vs. obj-c ▸ if-let pyramids of doom deprecated ▸ Upcasts and Downcasts with as adds some optional safety ▸ Native Set added to the collection types ▸ let constants don’t have to be set at declaration ▸ Swift first-class citizenry enforced even more
nonnull, nullable, null_unspecified ▸ originally anything in the Cocoa API returned to swift an unwrapped optional (AnyObject!) ▸ potentially bad if nothing was there, no way to know! crashed at runtime! ▸ much easier to handle things like UIKit with methods that will return optionals or guaranteed instances.
method implementations inside a protocol ▸ Error Handling, we now have throw, try, and catch ! ▸ guard statement for better readability and early logic exit ▸ API availability statement ▸ Automatically synthesized headers