瞎扯淡 我为什么想要转到ROR

zacker330 · 2013年01月24日 · 最后由 skandhas 回复于 2013年01月25日 · 3353 次阅读

本人目前还是一名 java 程序员,但,不要认为我是永远站在 java 一边的,就算我今后成为一名 ruby 程序员,也不要认为我永远站在 ruby 的一边。其实,我更喜欢 Common Lisp

实际工作中,我使用的是领域驱动范式,我会将所有的业务写进领域类中,也就是 Rails 中的 Model 中。你可以认为我入行不深,但我还是要说企业应用的开发,最重要的还是业务,而不是性能。因为需求常常会变。当我使用 java 的时候,发现应对这些需求的时候,还是太慢了。你也可以认为我的 java 的水平太次。我用 java 开发也只1年半的时间。 对,没错,我为的是开发效率才开始学习 ROR。但,ruby 的虚拟机的性能是好还是坏,我身边的人的评论都是坏。而我的观点则是:我只开发一个同时在线用户只达到200多人的企业应用,性能不是最重要的;再者,我没有真正的去测试过,也不知道RVM的性能如何。

这就是我为什么想要转到ROR。

加油!相信你在转换的过程中,会发现其实还有其他很多有趣的东西的。

握爪,如果只是小用户量,开发效率远比性能优先 我做的一个内部 intranet 应用,很多页面近百个 SQL 查询,有很大的优化空间。但,我更认定快速迭代优化体验才是更重要的,一个 idea 从诞生到上线要尽可能的短,然后根据反馈优化。性能,MySQL 自己会缓存这些查询,还不是现在的问题

其实吧,只需要这么想,如果我们的项目能达到 twitter 从 ruby 换 scala 时的用户量,我们已经创业成功/项目成功了。

哈哈,我也在从 Java 转 Ruby. 性能问题等碰到再解决,嘿嘿。

所有的性能优化都是有代价 (空间/时间,编译时/运行时,复杂实现/简单实现...) 的,人们都倾向于说 benchmark 如何快,但却没告诉你代价是什么。

例如一般都说 java gc 性能很好,但是 semi-space 分代 GC 的代价就是 native 调用很难写,和 native 代码交互的 object 要手动 pin 住,无法在堆中移动,使得 JNI 效率大打折扣,不能用就重造轮子,最终全部在 c/c++ 里已经有的东西都要用 java 重造一遍... 这也造成了 "java 库很丰富" 的假象... 用 java 会有一些让人 "wtf" 的地方,例如 "你可以建议 gc 收集但不能确实让它开始收集", 这个就是多线程 gc 的代价之一...

ruby 虚拟机性能已经很好了,系统调用效率比 java 高 (写个 echo server hello world 测测就知道了), 模板引擎渲染速度比 go 快...

学习 ruby 是快乐的,能大大的提高我们工作效率,编程是快乐的。 我和楼主一样目前还是 java 程序员,java 的开发效率的确很低,为了保证代码的质量,我们总是要顾着顾那,struts 的配置和请求流程,hibernate 配置和 hql 语句的写法。spring 的 ioc 是如何使用的。 即使现在用了 struts 注解,spring 注解,可还是很繁琐,要关注的地方多啦,总有疏忽的时候。 晚上就遇到一个很早之前自己代码中的一个 bug,session 没正常关闭,导致 oracle 连接数递增。 先前一直犹豫要不要学 ruby,也是考虑到性能方面的问题。 不过现在没这方面犹豫了,想学就学呗,遇到性能问题时,直接上 F5 就好啦。总是会有办法的。

#6 楼 @alan_hjkl 开发的效率问题主要源于 java 语言,java 的很多框架的概念,理念是值得到学习的,比如IOC思想。

Ruby VM 的性能已经很不错,没有你想象的那么糟糕,切不可被先入为主的观点所影响。

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