TL;DR Swift is cool, RubyMotion is cool, you should choose what's right for you.

The day Swift came out, I wrote up a piece about "Why Swift Will Never Replace RubyMotion" which ended up getting a good amount of attention, both good and bad (luckily mostly good).

Since then though, a lot has happened, I've talked to a lot of people about my post, I've read other peoples thoughts, and most importantly I've read and watched as much as I've been able to about Swift and how to use it.

NOTE: This is poorly written, I'm super tired after a holiday, but it should still be interesting.

I Love Swift

Before I continue, I want to explain that I really really enjoy the programming language Swift. There is an amazing amount of language features that I find really impressive. It's by far one of the best typed languages I've seen in concept.

I found this quote though from another blog post, that I think really nicely sums up what I was actually trying to get at in my last blog post.

Will you be more of an iOS developer because you took the time to learn Objective-C and it’s 20+ years of history versus Swift and its eleven days? Nope. Your customers care about what’s on the surface of your app: does it look, interact, and feel like an iOS app. If you can do that, the language doesn’t matter.

There is no right answer to this question. Choose what the language that speaks to you and then go build something awesome. - Justin Williams, Learning How To Make Sausage

I REALLY Love Community

The Ruby community is famous for it's "glory", and the RubyMotion community has seen the amazing Ruby world brought straight in, taking good parts from the Ruby and Objective-C worlds.

Community means more blog posts, more libraries, more helpful people, and the good communities have less of the unhelpful "help" too.

The Objective-C community is great, but the time I've spent in both (pre-RubyMotion) showed a lot more power in the community in a lot of the places that mattered.

Some of the questions I got

What about developers new to iOS/OS X?

Their language/toolkit choice is going to be mainly influenced by the people around them. Non-programmers will use what their programmer friends tell them to. Ruby devs will mainly go for RubyMotion. C# devs will go for Xamarin. Theres even toolkits in the making for those on the JVM. These niches have their places to go, everyone else will likely go to Swift and/or Objective-C, including a fair number of the people from these niches. They are the "main" languages, the ones Apple want you to use.

But RubyMotion isn't free.

Yes, but neither is your iOS or OS X developer license, or your computer you spent that extra money on for "productivity", or that fancy phone you're developing apps for. RubyMotion has easily saved me time and made me money far beyond the cost, due to a productivity increase. That was MY experience, but one I was confident would occur because I took advantage of it being a Ruby. Invest your money where it should be invested. Just because RubyMotion isn't free doesn't mean it's not going to survive, it means it's not for you if that's what you're looking for.

How do I choose what to use?

If you currently have a toolkit that allows you to do your job, keep on using it while researching the others in your spare time, this includes if you're looking at moving from Vim/RubyMotion to Xcode/Swift. If you don't, see above.

Why did you make it seem like Swift and RubyMotion ARE competing?


Go back to the last article and read everything after the heading "You’re creating competition where there is none". Everything above it was basically a lead up of me doing what everyone was doing that day, comparing the two languages, and then I'm (badly) pulling the rug out from under all that by saying, generalised comparison isn't going to help that guy that's been doing Java for 2 years and wants to make an iOS app, or that girl that's been doing Smalltalk for 20 years and wants to build her first mobile game. Be their network, not a thousand screaming voices scaring them away whenever big changes come along, because you might scare them away every year around June then.

I'd just like to say why I like one way

That's good, I like that, show fair comparisons, write up some great blog posts. Share your opinion. If theres any chance someone starting out might see though, don't tweet "VIVA LA SWIFT! DEATH TO RUBYMOTION AND XAMARIN!". Basically, promote your likes, don't attack the things you dislike. Unless you're on HN, then go nuts, just don't read the other comments.

Have fun!

Seriously, just... have fun, be passionate in good ways, enjoy learning lots of things and playing with all the cool toys. That's why we're here isn't it? I'm personally learning Swift, SpriteKit, and Arduino at the moment, and loving every moment.

Related Links