分享

MobiRuby的野心:用Ruby替代Objective

 openlog 2012-07-02

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

2012-04-20 18:14 | 16921次阅读 | 来源:CSDN综合 【已有33条评论】发表评论

关键词:MobiRuby,mruby,ruby,lua | 作者:杨鹏飞 | 收藏这篇资讯

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

  1. class NSString < Mobi::Cocoa::Object
  2. end
  3.  
  4. class UIAlertView < Mobi::Cocoa::Object
  5. end
  6.  
  7. def _S(str)
  8. NSString._stringWithUTF8String str
  9. end
  10.  
  11. alert = UIAlertView._alloc \
  12. ._initWithTitle _S("Hello"),
  13. :message, _S("I'm MobiRuby"),
  14. :delegate, nil,
  15. :cancelButtonTitle, _S("I know!"),
  16. :otherButtonTitles, nil
  17. alert._show

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


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多