面向iOS的靜態編譯Ruby
現在已經出現了一個靜態編譯的 Ruby 變體,用于構建面向 iOS 設備的應用。該語言叫做 RubyMotion,來自于 HipByte 的這門語言與工具鏈完全遵循 Apple 的 App Store 指導方針。為了做到這一點,他們不得不去掉了 JIT 編譯器與解釋器,這會導致一些 Ruby 開發者覺得非常受限制。
其工具支持非常弱。RubyMotion 并沒有任何 IDE 支持。HipByte 希望開發者使用自己的文本編輯器與命令行終端來完成大多數開發任務。
運行時則要好很多。RubyMotion 完全支持多線程編程而不會遇到全局解釋器鎖的不便。它甚至為 Grand Central Dispatch(Apple 的用于并發與并行編程的基于任務的程序庫)提供了一個接口。類似于 Ruby 本身,內存是由運行時管理的,但開發者依然可以訪問原生以及第三方的 Objective-C程序庫。據推測,這種訪問“是非常自然的且不會有任何性能上的代價”。將 RubyMotion 與 Mono for Android 相比,后者通常需要在 Mono 與 Dalvik 運行時之間編排對象。
RubyMotion 的大部分內容都是基于 MacRuby 的。MacRuby 是個已經持續了四年之久的項目,基于 OS X 與 Objective-C提供了 Ruby 1.9。MacRuby 的上一版發布于 2011 年 3 月,版本號為0.10,這表明其發展速度并不如預期那么快。“MacRuby 是由 MacRuby 團隊版權所有的免費軟件,基于 Ruby 的許可”。
RubyMotion 本身并非開源項目。其零售價為每個開發者 200 美金,此外再沒有其他的許可費與版權稅。其零售價格包括一年的升級,這樣其實際上是個訂閱,每年需要升級一次。
查看英文原文:A Statically Compiled Ruby for iOS