On the first day of WWDC 2014 Apple surprised everyone with the introduction of “Objective-C without the C” — a new programming language called Swift. It’s a language that leans more toward typical “scripting” languages than compiler-based languages (although it’s still compiled and apparently is very fast).
I’m one of those folks who gave up on Objective-C after banging on it for a while. I come from a hard-core programming background, starting with assembly language, doing games in C, etc., so I *could* have gotten fluent in it, but I wondered why I should have to work so hard. It kind of pissed me off, to tell you the truth.
(Technology gets more powerful, gadgets get smaller in size, and programming gets more complex? Hmmm.)
I downloaded the Swift Programming Language ebook right after the keynote address was over and started reading — and discovered that if it had been available a few years ago when I was trying to learn iOS/Mac programming, I probably wouldn’t be using Corona SDK right now.
Apple switching to Swift is going to open up the iOS/Mac dev world to a lot of people who felt “shut out” before now.
In fact, I can see some people leaving Corona for Swift/Xcode — those people who wanted to learn Obj-C but just couldn’t get over the hump of the learning curve now have an easier entry point.
Not as easy as Lua; it’s one of the most welcoming languages I’ve ever met. (It’s like Lua is your Mom and Swift is the friendly librarian — she’s nice, but she doesn’t love you.)
I wouldn’t be honest if I said I never gave some thought to jumping ship to Swift and Xcode and letting my inner nerd run wild and breath in the new code smell. I spent most of a day reading about Swift and looking at the Sprite Kit API. I even installed Xcode 6 and played in the “Swift playground” a little bit. And I liked it.
Because at heart, I am a programmer geek.
But from the “making a game” standpoint Xcode offers less to me than Corona SDK does. No, Corona doesn’t give you access to everything in the iOS/OS X API, so technically you can do more in Swift/Xcode than you can with Corona.
But remember that old saying…
“With great power comes great
responsibility complexity.” (modified for this context.)
No matter how much easier Swift is than Objective-C, the programming language is the minor part of making a game. What counts is the API and how it’s been created to serve the developer. From drawing an image on the screen, to animating it, to responding to taps and touches, Corona SDK was designed to be easy to use.
As long as the power I have is enough to make my game, I gladly trade speed of development for options.
I’ve always said Corona SDK is not the right framework for every game, but I think it can be the right framework for most 2D mobile games (where most equals > 51%). As long as Corona is “good enough” for what you want to do, I think you’ll be able to crank out your games faster and easier than by switching to something like Xcode — with or without Swift.