瞎扯淡 csdn 今日头条:做 iOS 开发,我为什么弃用 Objective-C 而选择 RubyMotion?

kehao · 2013年02月28日 · 最后由 fsword 回复于 2013年03月04日 · 4755 次阅读

晚上回去看看

对哦,不提供试用的确让人不爽

有人用过 RubyMotion 吗,哥们就是做 iOS 的,和 objc 打交道也有四年多了。 有点习惯了 objc,现在学 ruby 有点生涩,下周准备 rails 了 之前看过 rubymotion 的例子,毕竟不是原生,做 app 费劲的多,所以没打算转,只用 ruby 做做 server 就行了,呵呵,就这点追求了 以后遇到不懂,还请前辈们多多指教!

不过听了 teahour 的第四期之后忽然对 rubymotion 没那么大的冲动了,因为就算有 rubymotion 你很多时候还是要和 obj-c 打交道,很多资料或者文档还都是 obj-c 的,还要学 obj-c 还要熟悉 rubymotion 无疑增加了学习成本,不如直接用 obj-c 了,坐等 rubymotion 有杀手级别的 gem 或者比较吸引人的 feature 的时候再入手.
分析下文章里面说的几个优势.

  1. 性能.能和原生的一样其实不算是优势,只能说这是和 obj-c 竞争的必须条件
  2. 方便的 shell 调试工具,这是唯一我觉得值得称赞的东西,对于 rails 程序员来说这个 console 很亲切,功能很强大,具体视频可以看我之前发的一个关于 rubymotion 的帖子里面有视频.
  3. 语法简洁.话说 obj-c 的语法虽然相比 ruby 来说长的有点变态了,但是有 xcode 这种变态的 ide 配合,再长的 code 也只需要按几下 tab 就解决了,所以这不是什么太烦人的问题.
  4. 学习成本.并不能让 rubyist 完全不学 obj-c 和 cocoa,除非你只开发超级简单的 app.所以这点不是优势.
    so 综合以上几点我的建议是还是观望,等真的有让 rubyist 心动的 feature 出来的时候再入手也不迟.

#4 楼 @sailtsao 这两周正在试用,我的感觉

1、性能不提,开发效率比 objc 高

2、shell 工具没有 rails 那么强大,功能有限,目前只能通过点击页面的 UI 元素来选取对象(不太好选),或使用 AppDelegate 等全局可以读取的东西,也许我使用方法不对?但调试简单代码,尤其是试验一些 api,有 shell 要方便得多

3、长语句输入其实不是问题,比如 sublime text 也有针对 rubymotion 的代码提示插件,基本够用。rubymotion 的好处是可以简化语法、不用太操心对象类型、不用在 h 和 m 文件里折腾、不考虑 strong、retain、weak 之类的问题。语法精简以后,可读性更好

4、cocoa 的学习不管是用 objc 还是 rubymotion 都是一样的,只需要简单了解 objc,就可以在两种语言间转换,这个体验就好像 javascript 和 coffeescript。这个转换非常容易,我在拿到 rubymotion 的第一天看了看文档,第二天就开始重写之前的小程序了,没有什么额外的学习成本,目前也没遇到什么 rubymotion 特有的坑

5、rubymotion 的最有价值特性还是源自 ruby 元编程,靠 DSL 把复杂的操作变得非常简单。目前已经有一些 rubymotion 的 wrapper(http://rubymotion-wrappers.com/) 可以与 objc 对比来看。比如 AFNetworking vs AFMotion,AFMotion 简洁的要死。比如 bubble-wrap 和 sugarcube,把大量常用功能都封装起来。再比如 MotionModel,虽然我还没试用,但是看文档描述,已经可以秒杀 objc 下任何相关项目了

我认为 rubymotion 很有前景、非常值得一试 IOS 开发火了这么几年,也没一个可以让人快速开发的框架出现,将来很可能会由 rubymotion 实现

我到想知道在 android 开发上有没有人做过类似的事情

一直在用 Rhomobile, 开发效率一流, 性能不能跟原生的比

需要 登录 后方可回复, 如果你还没有账号请 注册新账号