The worst thing about developing for the Mac or iOS is Objective C. Obj-C was a heck of a good experiment 20 years ago, but it’s just not a good fit for today’s mainstream programming mindset. In the wake of Apple’s relenting on the use of 3rd party language tools for iOS comes the rumor that Apple has been working on, and is about to go public with, a Ruby implementation.
It makes a lot of sense. It makes even better sense if Apple is “going big” and aiming to capture mindshare by producing a dazzling “iLang.”:
- At some point, Apple will have to move beyond Objective C. It’s just a question of the language.
- Objective C on iOS requires manual memory management, the most bug-prone area of single-threaded apps. Ruby has built-in garbage collection.
- Matz’ Ruby Interpreter is notoriously complex; if Apple could create a VM or hybrid native runtime using their investment in LLVM it could easily be much faster than existing Ruby implementations.
- Grand Central Dispatch is a good match for Ruby semantics. Combined with a fast implementation, this could allow Apple to boast of a “best of all possible worlds” approach to concurrency.
- The timeframe is about right — Ruby’s success became apparent several years ago. The creation of a commercial-grade high-performance Ruby implementation would take about this long to get through the pipeline.
- The Ruby ecosystem is large and friendly to OS X.
- Ruby is both “sexy” and admired by programming-language geeks. Yet it’s not radical in the way of, say, a pure functional language. Were Apple to make Ruby a first-class language, they would be dealing with a known commodity in terms of learnability, resources, and limitations.
Finally, one can imagine Ruby being dressed up in a nice new suit and given a pair of really cool designer sunglasses and pitched by Steve Jobs as something extraordinary and “the world’s best” and “revolutionary,” etc.
As a matter of fact, it’s interesting to imagine what a Stevenote about programming languages might look like. Any thoughts?