MobiRuby的野心:用Ruby替代Objective-C/C/Java
Lua 指尖跳舞
大家都知道iOS的母語是Objective-C,她誕生了超過50萬款的應用,為App Store和開發者創造了大量的價值。但是正如這個世界有航母,同時也有護衛艦一樣,有時候我們只是希望能夠快速的添加一些擴展以及定制功能,這個時候使 用Objective-C就可能會有大炮打小鳥的感覺。于是一些開發者轉而去需求輕量級的替代方案,比較知名的如移動開發新寵:Lua語言,已經在以《魔獸世界》為代表的網絡游戲中,包攬了幾乎所有的插件,核心的C++代碼只占全部代碼中的很小一部分比重。
Lua的設計初衷并非意圖構建完整的應用,而是嵌入在應用程序中為應用提供靈活的擴展和定制功能。所以Lua僅提供了基本的數學運算和字符串處理等 函數庫,在語言兼容性上,Lua一開始就瞄準了具有廣泛應用場景的C和C++,讓C/C++編寫的代碼可以很方便地調用Lua腳本,同時C/C++函數也 能夠在Lua腳本中調用。與C/C++代碼的良好交互性,讓Lua在應用程序開發中有著廣泛的應用基礎。
Ruby 輕盈移動
同Lua不同,Ruby誕生于1993年,那個時候甚至連傳統互聯網都不是“那么”的普及。Ruby的理念是:
減少編程時候的不必要的瑣碎時間,令編寫程序的人高興,是設計Ruby語言的Matz的一個首要的考慮;其次是良好的界面設計。他強調系統設計必須強調人性化,而不是一味從機器的角度設想。
via 維基百科
這正契合了移動開發的特點:人性化、輕量級、快速開發。在Ruby的基礎上,Matz開發了mruby,并在2012年4月20日進行發布。根據作者官方介紹:mruby是一款輕量級的Ruby實現,遵循ISO標準。它可以以解釋的形式或者在VM上編譯和執行形式運行。
圖片來源:bounceweb
MobiRuby 取代Objective-C的野心
前面鋪墊了這么多,現在我們再來談MobiRuby就輕松多了。MobiRuby脫 胎自mruby,類似于Lua、mruby,可以在幾乎任何設備上運行,對語言進行了精簡,試圖使得編程更加快速和簡單。但是比起前輩來,卻更加野心勃 勃。作者宣稱MobiRuby的目的就是:在移動平臺上取代Objetive-C/C/Java。MobiRuby并非像Ruby那樣基于GPL協議和 Ruby License,而是采用了更加寬松的Apache License 2.0,之前Android閉源事件的討論中,CSDN也特別對這兩個協議之間的區別進行了簡單的闡述。
世界正在變得越來越平,和輕
世界已經平的像一塊手機屏幕了,而很多人還妄圖讓它變得更輕,來看一段實例代碼,我們就能體會出MobiRuby到底有多輕了:
UIAlertView
class NSString < Mobi::Cocoa::Object endclass UIAlertView < Mobi::Cocoa::Object end
def _S(str) NSString._stringWithUTF8String str end
alert = UIAlertView._alloc \ ._initWithTitle _S("Hello"), :message, _S("I'm MobiRuby"), :delegate, nil, :cancelButtonTitle, _S("I know!"), :otherButtonTitles, nil alert._show</pre>移動改變了我們的生活,也改變了很多人看待事物的眼光。正如 The Art Of Unix Programming一書中所說:簡單就是美。因為我們的生活正在變得越來越復雜,我們的精力正在經受越來越嚴酷的壓力,時刻準備著大量的事情迎面砸來,所以很多時候”如何能夠簡化步驟完成任務“,遠比重量級、功能全面更加實用。
本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!