MobiRuby 的野心:用Ruby替代 Objective-C/C/Java - 开源中国社区
MobiRuby 的野心:用Ruby替代 Objective-C/C/Java
虫虫 2012年04月20日

MobiRuby 的野心:用Ruby替代 Objective-C/C/Java

虫虫 虫虫 发布于2012年04月20日 收藏 15 评论 17

【腾讯云】如何快速搭建微信小程序?>>>  

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

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:MobiRuby 的野心:用Ruby替代 Objective-C/C/Java
分享
评论(17)
最新评论
0
个人喜好不同,审美观更是千差万别,不过,我是挺喜欢这种语法:-)
0
不要妄下结论,ruby的语法绝对是最优美的语法之一。
0

引用来自“醪糟儿蛋”的评论

ruby的运行效率呃 取代obj-c 有点难度,再者水果认可才可能进入itunes,如果进入不了 itunes 那么却取代obj-c就不成立了,取代java到还是有可能的吧

最好取代 java 真心讨厌java
0
看来好多人都不懂Ruby,所以才说语法丑吧... 我承认这个例子举得不好。
0

引用来自“少帮主”的评论

真的好丑的语法,爆了

+1
0
这个语法,将好多有兴趣的人拒之门外...
0
ruby的运行效率呃 取代obj-c 有点难度,再者水果认可才可能进入itunes,如果进入不了 itunes 那么却取代obj-c就不成立了,取代java到还是有可能的吧
0
ruby很优美,但这个mobiruby使用的命名风格却是C/C++的风格,所以看起来有点丑
0
缩进固然。。。然ruby语法真心觉得不怎么样
0
LS几位,Ruby语法确实很优美,这贴是没有缩进好,想看的可以去Ruby官网看看

另外,这贴我之前不是有个评论吗?咋全删了,OSC搞啥鬼
0
这么多的铺陈,结果下文的代码语法却是这样……
这让一个想学Ruby的人真是情何以堪啊…
0
丑在哪里?楼上几位能说说吗?
0
HTML5,CSS 和javascript才是客户端的未来
0
真的好丑的语法,爆了
0
。。。
0
...
0
我只能说这语法丑爆了
顶部