New Beginnings with Swift

Various thoughts after spending a little time with Swift:

  • Ruby Motion is putting on a brave face and saying they’re not worried. There are enough differences between Apple’s Ruby-like scripting language for iOS/OS X programming to distinguish it from their own Ruby scripting for iOS/OS X. Plus, they have Android support. This is true, but how many Android developers can afford to pay for Ruby Motion? I think a lot of people won’t be updating their copy of Ruby Motion in the next year or so. Others are so through-and-through Ruby that that’s more important and they’ll stick around. But I wouldn’t put bets on Ruby Motion being a growing platform anymore.

  • Swift’s function definitions annoyed me at first. They’re very verbose, defining all their specific arguments and types along with more syntax to define a return type right at the top. I understand that structure is good and takes a lot of guess work and errors out of the game, but it struck me as being too wordy. Then I remembered that this is a language meant to work with Apple’s frameworks like Cocoa. I pictured how Objective-C worked and instantly realized what a necessity this format is. It’s not the square brackets that’ll drive you nuts in Objective-C; it’s all the ridiculously long names in function calls and parameters. That’s why XCode is a necessity, and such a valuable tool.

  • Swift is the oddest looking Perl variant I’ve ever seen. Of course, the kids these days will compare it to Rust and Ruby and Python — all of which are next generation Perl wannabes, anyway. So, perhaps Swift is just not your grandfather’s scripting language of choice.

  • It’s funny to see the Open Source zealots complaining that Swift isn’t open source while using their Android phones, which are Open Sourced long after their programmed and pretty much useless to anyone else anyway.

  • I’m glad to have been doing a lot of functional programming lately, because Swift is very functional. I recognize a lot of the same tricks here. It’s funny because I was learning Objective-C and Ruby at around the same time and learned a lot of object oriented programming lessons from doing two different OO languages at the same time. Now, I have Elixir and Swift both working on similar concepts. Maybe the two will feed into each other for me. Here’s hoping…

  • In the end, the most important thing about Swift is the same as with Objective-C: It’s just syntax to deliver the frameworks. The real knowledge you need isn’t in how to set up a loop or increment a variable. It’s in knowing what all those APIs do, and which ones are available to you, and how to efficiently look them up when you need the help.

  • It still blows my mind that they spent four years developing Swift and word never leaked out about it. And they even have the bible of the programming language written up and available on the first day of its release. It’s a well-written guide. I wish it had a couple tutorials in there, but I know one of those is available already on the Developers site, and I’m sure more will come. It’s impressive.