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
end
class 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
移动改变了我们的生活,也改变了很多人看待事物的眼光。正如The Art Of Unix Programming一书中所说:简单就是美。因为我们的生活正在变得越来越复杂,我们的精力正在经受越来越严酷的压力,时刻准备着大量的事情迎面砸来,所以很多时候”如何能够简化步骤完成任务“,远比重量级、功能全面更加实用。