What are the primary differences between Swift and Objective-C, and when would you choose one over the other?