`
为什么需要注册
  • 浏览: 14113 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

【讨论】大家都说Ruby好,那为什么没有纯粹Ruby的工作呢?

阅读更多

  这几天在Shanghaionrails的Google讨论组 上,网友ning 抛出了这样一个观点:都说ruby好,但都没ruby job!

  网友ning

写道
我觉得ruby近年来得到许多人的关注,都只是因为rails。为什么我有这样的感觉呢,我在国外search一下ruby的招聘,都发现打着ruby
的title,实质都是招Rails。
ruby看来还是养不大的孩子:)

 
 此观点一出,引发了大家的积极回应:

 网友G. zhen. ning

写道
我有一个问题希望在这里能得到大家的一些有意义的讨论:为什么现在这么少公司招聘Ruby程序员呢?
你们许多人近年来都在RubyConf已经提出了这个问题,"有多少人是带薪写Ruby代码的呢?"。你们看到去年或这两年能举起手说自己是全职写Ruby代码的简直是凤毛鳞角!
然而,在Gotham Ruby
Conference里,一些朋友问道,"在这里有多少人是全职写纯Ruby代码而不带Rails代码的呢?"。我想当时只有3个人举起手说是,而我就是
其中一个!在参会的120个人外,或者这么多人当中可能已经有相当一部分人是在NYC(纽约)干Rails的全职工作了,但我想从事纯Ruby工作的这个
问题远远少于这个数目。
我听过许多朋友说,"
哎,我更喜欢写纯Ruby代码,只是一直没有这样的工作机会,于是退而其求次干Rails的工作,因为这算是最接近Ruby的了,这总比干<insert_language_here>要好。
难道Ruby真的只能为数据库驱动的Web应用程序作嫁衣裳?我对此抱怀疑的态度。我认为Ruby有能力在Perl和Python当中争到一席之地,看到
这你一定会问,"为什么这么多关于Ruby的工作都是和"Web
Rockstar"相关的,而不是需求有脚本语言经验的系统管理者或者是内置应用程序的开发者呢?"

我猜有许多原因导致这个情况,下面的=的一项或者全部都可能是造成这情况的凶手。

缺少非web导向的Ruby的活跃市场。
RoR的成功给大家一个Ruby不是通用语言的印象
技术层面的,我不能想象因为Ruby比其它程度语言要差劲。
Ruby的普及程度本可能本来就比Rails慢一些,但已经越来越好了。
MRI(Matz's Ruby Interpreter,Ruby的解释器)不足以应付'商业'开发,因此公司都在期待JRuby。

我真的不太清楚是何种原因造成的,*我清楚,如果牵扯到大公司的角力,结果就可能大有不同*
,但我认为,从这个角度来说,Ruby独立于Rails之外的商业上可行的成功语言是没达到它本有的地位。有人跟我同样感觉的么?

 网友Daniel Lv

写道
乐观的说:
ruby可以让你快乐编程,认识更多喜欢ruby的朋友...

 

 各位JavaEye的兄弟姐妹,又是如何看待这个问题的呢?

 本帖旨在抛砖引玉,欢迎大家积极讨论。

分享到:
评论
87 楼 kaven 2008-10-04  
gigix 写道
kaven 写道
内存漏洞是另外一个问题,37signals用ror的时候,内存漏洞问题肯定比我们现在还要多,不过人家照样成功了。
任何语言都有内存漏洞,只是多点少点的问题。只要控制在可接受的范围内就可以了。

实际上我最近遇到的一个关于内存的严重问题是,遍历几千个对象,每个对象的操作又会导致从数据库加载几十上百个对象,由于前面的循环遍历操作一直拿着所有对象的引用,GC一直不会发生,占用过多的内存而被系统监控程序杀死。
相比之下内存泄漏真是容易对付得多了。只要每个请求都能完成,泄漏到一定的时候把整个进程杀掉了事。

遍历过程中使用完一个对象,就置nil,这样gc就会处理了。
0.upto(array.length-1) do |i|
 .......
  array[i]=nil
end
86 楼 gigix 2008-10-04  
kaven 写道
内存漏洞是另外一个问题,37signals用ror的时候,内存漏洞问题肯定比我们现在还要多,不过人家照样成功了。
任何语言都有内存漏洞,只是多点少点的问题。只要控制在可接受的范围内就可以了。

实际上我最近遇到的一个关于内存的严重问题是,遍历几千个对象,每个对象的操作又会导致从数据库加载几十上百个对象,由于前面的循环遍历操作一直拿着所有对象的引用,GC一直不会发生,占用过多的内存而被系统监控程序杀死。
相比之下内存泄漏真是容易对付得多了。只要每个请求都能完成,泄漏到一定的时候把整个进程杀掉了事。
85 楼 kaven 2008-10-04  
neodoxy 写道

我觉得你的这个说法有意回避了robbin所说的问题

A: 你觉得这件衣服怎么样?
B: 袖口这里沾了一点灰

目前我在实际应用中也遇到这类问题,十分头疼,不单单是Rails的Plugins的问题,还有一些gem,都出现内存泄漏的问题
我曾经尝试使用Ruby对游戏服务器做包装,当实现10%功能时已出现了明显的内存泄漏,排查相当困难

没有错,我是在回避,因为问题是为什么没有纯粹Ruby的工作?

内存漏洞是另外一个问题,37signals用ror的时候,内存漏洞问题肯定比我们现在还要多,不过人家照样成功了。
任何语言都有内存漏洞,只是多点少点的问题。只要控制在可接受的范围内就可以了。

84 楼 redhacker 2008-10-01  
ruby的工作确实是少,还是把这些比较流行的语言选一门学精通了,找个不错的薪水,混饱肚子,再yy吧:D
83 楼 softcat 2008-09-28  
确实是个很无聊的话题。
82 楼 t0uch 2008-09-28  
唉,好想换一份做ruby的工作
貌似深圳这边没有招ruby的
81 楼 liuqiang 2008-09-28  
<div class='quote_title'>likeblood 写道</div>
<div class='quote_div'>
<div class='quote_title'>liuqiang 写道</div>
<div class='quote_div'>
<div class='quote_title'>hepeng421 写道</div>
<div class='quote_div'>新东西,要流行需要时间的考验,说实话,ruby仅仅是个探索性的语言,而不能用来当饭吃的,论企业开发java和.net,底层c/c++,web开发php,辅助开发perl/python。</div>
<p> </p>
<p> 我们既做java,又做ruby,反正我的薪水比做java的每个月总要多个千儿八百的说</p>
</div>
<p><br/>那是因为你本身水平就很强 和你做的语言无关 就算把你调到java 也总不会降薪吧</p>
<p>我倒是很同意把ruby当探索性语言来看,java刚出来时也没人敢真的用在项目里吧,觉得跑在vm里太不可思议了</p>
<p> </p>
</div>
<p> </p>
<p>反正可以吃饭,或许还有肉吃呢,比如gigix</p>
80 楼 likeblood 2008-09-28  
<div class='quote_title'>liuqiang 写道</div>
<div class='quote_div'>
<div class='quote_title'>hepeng421 写道</div>
<div class='quote_div'>新东西,要流行需要时间的考验,说实话,ruby仅仅是个探索性的语言,而不能用来当饭吃的,论企业开发java和.net,底层c/c++,web开发php,辅助开发perl/python。</div>
<p> </p>
<p> 我们既做java,又做ruby,反正我的薪水比做java的每个月总要多个千儿八百的说</p>
</div>
<p><br/>那是因为你本身水平就很强 和你做的语言无关 就算把你调到java 也总不会降薪吧</p>
<p>我倒是很同意把ruby当探索性语言来看,java刚出来时也没人敢真的用在项目里吧,觉得跑在vm里太不可思议了</p>
<p> </p>
79 楼 qichunren 2008-09-28  
gigix 写道
hepeng421 写道
新东西,要流行需要时间的考验,说实话,ruby仅仅是个探索性的语言,而不能用来当饭吃的,论企业开发java和.net,底层c/c++,web开发php,辅助开发perl/python。

我有个朋友正在着急招Ruby程序员,薪水不高,月薪8K~20K因人而异,够不够你吃饭?


真的,我想走人了。
78 楼 liuqiang 2008-09-28  
<div class='quote_title'>hepeng421 写道</div>
<div class='quote_div'>新东西,要流行需要时间的考验,说实话,ruby仅仅是个探索性的语言,而不能用来当饭吃的,论企业开发java和.net,底层c/c++,web开发php,辅助开发perl/python。</div>
<p> </p>
<p> 我们既做java,又做ruby,反正我的薪水比做java的每个月总要多个千儿八百的说</p>
77 楼 gigix 2008-09-28  
hepeng421 写道
新东西,要流行需要时间的考验,说实话,ruby仅仅是个探索性的语言,而不能用来当饭吃的,论企业开发java和.net,底层c/c++,web开发php,辅助开发perl/python。

我有个朋友正在着急招Ruby程序员,薪水不高,月薪8K~20K因人而异,够不够你吃饭?
76 楼 hite 2008-09-28  
lgn21st 写道
等一下,我在思考一下楼主的话题,发现可以总结出这样一个模式:
大家都说Java好,为什么没有纯粹的Java的工作呢? (全都是SSH或者EJB或者其他....)
大家都说XXX好,为什么没有纯粹的XXX的工作么? (全都是用工作在用XXX写的框架之上...)

哈哈

不错不错,总结很到位!
75 楼 hepeng421 2008-09-27  
新东西,要流行需要时间的考验,说实话,ruby仅仅是个探索性的语言,而不能用来当饭吃的,论企业开发java和.net,底层c/c++,web开发php,辅助开发perl/python。
74 楼 ssuupv 2008-09-25  
好的东西,不一定会流行.
73 楼 gzlu 2008-09-25  
fuwang 写道
gigix 写道
likeblood 写道
ror很敏捷 而是是太敏捷了 很符合急功近利的想法
这如同在jsp里写sql

扯~~
我就没见过几个JavaEE的项目有我现在做这些Rails项目这么规范这么整齐的
引用
个人观点,不太喜欢动态语言 这容易造成类型转换错误 以至于除了错误很难找到根源

写测试
据说Java编译器能抓到很多错误,不过更多时候我看到Java程序员们开着调试器玩慢性自杀

项目是否规范整齐与是否用Rails没关系,烂公司用什么都烂。
用现在的普通配置的机器开发java已经不慢了。


支持,会把Rails代码写得乱七八糟的,也一样会把Java代码写得乱七八糟。
72 楼 shaka 2008-09-25  
likeblood 写道
ror很敏捷 而是是太敏捷了 很符合急功近利的想法
这如同在jsp里写sql

而ruby作为ror的本质却没有太多的特色,不像c这么深邃,也不如java这么广谱

个人观点,不太喜欢动态语言 这容易造成类型转换错误 以至于除了错误很难找到根源

ps:可以反对我这观点,但是不许人身攻击


只能说明一个问题:
你对Ruby/Rails没有掌握到一定程度。。
到目前为止,还没听过有人这么说“我把Ruby都研究透了,最后发现这玩意真没什么价值。。”
如果你到那水平再来说这话也无可厚非。
71 楼 gzlu 2008-09-25  
其实只做一种应用的公司很少吧。如果不是特别优秀,公司是不愿意招只懂一种语言的人的。何况,只懂一种语言的人难说优秀吧。
70 楼 fuwang 2008-09-25  
gigix 写道
likeblood 写道
ror很敏捷 而是是太敏捷了 很符合急功近利的想法
这如同在jsp里写sql

扯~~
我就没见过几个JavaEE的项目有我现在做这些Rails项目这么规范这么整齐的
引用
个人观点,不太喜欢动态语言 这容易造成类型转换错误 以至于除了错误很难找到根源

写测试
据说Java编译器能抓到很多错误,不过更多时候我看到Java程序员们开着调试器玩慢性自杀

项目是否规范整齐与是否用Rails没关系,烂公司用什么都烂。
用现在的普通配置的机器开发java已经不慢了。
69 楼 gigix 2008-09-24  
likeblood 写道
ror很敏捷 而是是太敏捷了 很符合急功近利的想法
这如同在jsp里写sql

扯~~
我就没见过几个JavaEE的项目有我现在做这些Rails项目这么规范这么整齐的
引用
个人观点,不太喜欢动态语言 这容易造成类型转换错误 以至于除了错误很难找到根源

写测试
据说Java编译器能抓到很多错误,不过更多时候我看到Java程序员们开着调试器玩慢性自杀
68 楼 liuqiang 2008-09-24  
<div class='quote_title'>peacock 写道</div>
<div class='quote_div'>还真没看到过ruby做的系统</div>
<p> </p>
<p> 你想气死我啊? 你现在用的系统不就是吗</p>

相关推荐

    Best of Ruby Quiz

    2. **面向对象编程**:Ruby是纯粹的面向对象语言,每个值都是一个对象,包括基本类型。书中可能涉及类与对象、继承、模块(mixins)的使用、方法定义与调用、以及对象的初始化和销毁。 3. **块(Blocks)和 Proc**...

    Ruby的概要介绍与分析

    Ruby是一种纯粹的面向对象语言,所有事物都被视为对象。它支持完整的面向对象特性,包括但不限于: - **类与对象**:Ruby中的类定义了对象的属性和行为,而对象则是类的实例。 - **继承**:子类可以从父类继承属性...

    Ruby语言教程&案例&相关项目资源

    - **纯粹面向对象**: Ruby是一种纯粹的面向对象编程语言,这意味着一切都被视为对象,包括基本的数据类型如数字和字符串。 - **动态类型系统**: Ruby采用了动态类型系统,意味着变量可以在运行时更改类型。 - **多...

    Ruby生成随机数的方法总结

    没有一台计算机能纯粹通过计算产生真正的随机数。它们能做的最好的事情就是生成伪随机数,伪随机数是一组看起来随机但实际上不是随机的数字。 对于人类观察者来说,这些数字确实是随机的。不会有短的重复序列,而且...

    代码的出现:代码解决方案的出现

    Ruby是一种纯粹的面向对象编程语言,意味着一切皆对象。每个变量、函数甚至数据结构都是一个对象,具有属性(即实例变量)和方法。这种设计使得代码更加模块化,易于维护和扩展。 3. **元编程能力** Ruby的元编程...

    和谐

    1. **面向对象**:Ruby 是一种纯粹的面向对象语言,所有数据都是对象,每个操作都是方法调用。 2. **动态性**:Ruby 支持动态类型,变量的类型在运行时自动确定,使得代码更加灵活。 3. **元编程**:Ruby 提供了强大...

    rb101

    1. **面向对象**:Ruby是最纯粹的面向对象语言之一,一切皆为对象,包括基本数据类型。类、对象、继承、封装和多态等面向对象概念在Ruby中都有体现。 2. **动态类型**:Ruby中的变量无需预先声明类型,它们会根据...

    Project-4

    下面我们将深入讨论Ruby的一些核心特性、常用库以及如何在实际项目中应用。 1. **Ruby的核心特性** - **面向对象**:Ruby是最纯粹的面向对象语言之一,几乎一切皆为对象,包括基本数据类型如数字和字符串。 - **...

    cultural_watchdog

    1. **面向对象编程**:Ruby 是一种纯粹的面向对象语言,这意味着所有数据都是对象,包括基本类型如数字和字符串。类是对象的蓝图,实例是类的具体化。Ruby 允许动态地添加方法和属性,这使得代码更加灵活。 2. **...

    Navers

    1. **面向对象**:Ruby是最纯粹的面向对象语言之一,几乎一切皆为对象。它支持类、模块、继承、多态等面向对象特性,且内置了丰富的类库,如Enumerable,使编程更加方便。 2. **动态类型**:Ruby是动态类型的,变量...

    stonks

    1. **面向对象编程**:Ruby是一种纯粹的面向对象语言,每个值都是一个对象,包括基本类型如数字和字符串。这意味着你可以对这些对象调用方法,甚至可以为基本类型创建子类。 2. **动态性**:Ruby是动态类型的,变量...

    C++学习资料.rar

    "18 函数式编程之组合性:函数式编程为什么如此吸引人?.pdf"介绍了函数式编程思想。虽然C++并非纯粹的函数式语言,但其标准库支持部分函数式特性,如lambda表达式和函数对象。函数式编程的组合性、无副作用和高阶...

    pythonchallenge level2官方方法集

    纯粹的Ruby解决方案,展示了Ruby语言在解决类似问题时的特性和风格。 #### 37. A legible Ruby solution (Analogue to first python solution) 一种易读的Ruby解决方案,类似于最初的Python解决方案,强调了代码...

    白宝石及红宝石晶体的电子结构 (1986年)

    最后,文章提出了计算结果的合理性,并讨论了不同元素的含量对于宝石晶体电子特性的影响规律,为宝石材料的掺杂比例优化提供了理论依据。 综上所述,这篇文章在理论和应用层面都具有重要的科学意义和价值,为后续在...

Global site tag (gtag.js) - Google Analytics