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.
Excellent observations. I too prefer Corona because Objective C is so complicated. But you also have the cross platform nature of Corona. Still, Swift looks like a much more modern language and for most business apps will probably be my choice in the future. I’m very excited about Swift.
For games I don’t see a reason to switch away from Corona. For business apps I’d switch to Swift in a heartbeat (because I don’t much care about being cross-platform) except Xojo will be building iOS apps later this year and I’m already very productive with that. Xojo is what I used to build CPM/Outlaw and it puts the Rapid in RAD. 🙂
I can’t really afford to spend too much time on something I’m not going to be using for my own projects, but I wish that wasn’t the case. Swift looks like it could be fun.
I am not going to abandon Corona SDK, but I am definitely going to give Swift a try. I am primarily a biz app developer and from what I see it may be good for some of the things I need to do.
I too was very frustrated trying to teach myself Objective C, and I am looking forward giving Swift a try.
And now we have the Corona Enterprise. It can access the native APIs from Apple devices, for example. Corona is the best!!
I’ve looked at pretty much every mobile SDK on the planet and I keep coming back to Corona for one simple reason. Cross platform support. Yes Corona is not the most powerful SDK on the planet and I can’t always access 100% of the device capabilities but for the vast majority of apps / ideas / prototypes its good enough and that is enough.
It’s quick and easy to use and testing code on your device is a breeze. As an indie I can’t afford the time to create two different native versions and I can’t afford to ignore the other platforms either (even more so now that Corona has desktop and Apple TV support).
And if I need any more power for 3d then I’d use Unity