论坛首页 编程语言技术论坛

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

浏览 34407 次
精华帖 (0) :: 良好帖 (18) :: 新手帖 (2) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-09-13  
wopenonline111 写道
楼主的问题说明,ruby的前景是悲观的,或者说将长期处于业界主流之外。
ruby相对其他语言,并没有多强的优势,那么企业怎么可能用ruby取代其他语言。
rails虽好,但最多也只能解决web方面的问题,还有很大一部分领域rails用不上(比如协议分析,搜索等等)。

所以我是唱衰ruby的。另外我是赞同语言之争的,特别是相同领域的语言之争,像ruby|python|perl,c++和java等。那种认为各个语言各有特点所以争论没有意义的观点,
纯粹是和稀泥而已。

每种语言都有自己擅长的领域,所谓一种语言的衰落其实是指这种语言适用的领域范围变窄了。脱离领域争论语言是没有意义的。
0 请登录后投票
   发表时间:2008-09-13  
liuqiang 写道
leondu 写道
火星叔叔马丁 写道
gigix 写道
火星叔叔马丁 写道
俺其实很奇怪一点 人家说ruby工作和趋势 gigix在谈这个行业?
先天下之忧而忧哪还是 偷x换x?

因为作为一个程序员你要做的事情是开发软件
而不是用某一种语言开发软件
那些抱着一招鲜吃遍天的心态进入这个行业的人,历史证明,对谁都没有好处
所以,想要找纯粹用某一种语言编程的工作,还不如不要找编程的工作



又开吹了,只会c和cobol的人 海了去,人家不是活的挺滋润?

lz跟本没想谈行业问题 您老还是打住吧
否则大家都要满城遍地咨询师了


“只会c和cobol”, 还“海了去”,还“活的挺滋润”

真佩服你说话不经大脑的勇气。

 

 说实话,我挺佩服你的,我无意和你争辩这个无聊的话题,只想说现在用c做嵌入式的哥们们,滋润的不得了,信不信随便啦,我说完了。

 

说实话,我也挺同意  “只会c和cobol的人 海了去,人家不是活的挺滋润? ”  的....见过很多这样的人(不会html,不会java有怎么样?)

 

写了这么几年程序,搞了这么多的语言,我还是觉得,写C的几年里感受到的是最纯粹编程的快乐的.  开个vi 或是ue 敲敲make,跑跑gdb,dbx,黑底,绿字的控制台显示的种种信息总是让人很愉悦...在各种ide里面不停的用鼠标点来点去总是让我觉得很痛苦,不过还好有个rails.vim   呵呵..

0 请登录后投票
   发表时间:2008-09-13  
说Ruby好的人和给Ruby job的人不是同一类人!!!
说Ruby好的好像都是开发人员!!
我也觉得Ruby挺好的
但是,如果我是老板或是项目经理的话,我是不同意用Ruby的,就是感觉Ruby的风险相对要大些!!
看过“不会因为你买了IBM的服务器而开除你!那你还会买别人的服务器吗?”
0 请登录后投票
   发表时间:2008-09-13  
对很多非脚本专业程序员来说,ruby,或者php,python做为第二语言是没啥问题的。
0 请登录后投票
   发表时间:2008-09-13  
hanssonlan 写道
说Ruby好的人和给Ruby job的人不是同一类人!!!
说Ruby好的好像都是开发人员!!

同意 分开看待。
我原来任职的公司是给银行作大型外汇结算软件的。  用J2EE 开发,不使用任何开源框架。 原因我就不细说了。

关于ruby job少,我认为主要因为占领市场的成熟企业级软件大部分都是 java 开发出来的。 rails出道才3年,积淀很少,他的优点就是快速的web开发,也只是web开发而已。看中这一点的 大部分集中在 有web开发的 创业型公司 和 新兴的部门。

成熟的软件公司采用ROR 的可能性不大。  ROR 对于这些成熟的软件公司来说,他们不在乎3个人开发还是20个人开发。而且他们已经在原有的技术上有了很多的积累,选择ROR 增加不确定因素,得不偿失。

如果只是为了找工作学习 语言, 看 java 就对了,获得工作的机会肯定比其他语言高。  ruby找工作没戏。  对ruby比较精通的,大都在其他程序上也有比较深的功底或接触的宽度也比较宽。    如果某人云“只懂ruby,而且精通“, 我不相信, 就算如此,我坚决不用这样的人。
0 请登录后投票
   发表时间:2008-09-15  
liuqiang 写道

 

 python是简练,但是其他附加内容繁杂。

谁能解释下这句话什么意思?另外rails一定比django强很多吗?

 

觉得JRuby是个路子,2个亮点:VM 和 部署

 


再补充一条:JRuby能把rb编译成class

做产品的大多不希望连代码一同交给客户,就算程序员想老板还不想呢,像tw的mingle就是用的JRuby。

0 请登录后投票
   发表时间:2008-09-15  
python的作者开发初衷是作为粘合剂语言,所以python目标也不是作为独立系统出现,这点感觉google的理解最为透彻,毕竟python原作者就在那里。我看了一些google内部系统的介绍文章,很多底层的用c或者其他一些语言写,这样可以追求速度和效率,然后用python把底层系统粘合起来,让这个系统更加有弹性,便于修改。
ruby的作者开发初衷是开发乐趣,我的感觉就是让python灵活起来,实质也是粘合语言。
所以没有专门的python/ruby开发工作也和正常,这个东西不是用来包打天下的,是用来粘合其他东西,但以后应该是每个开发人员必须会的。
我也觉得这种思路是正确的,java就是反其道而行之,pure java简直是走火入魔,简直就是再造个轮子,完全是浪费开发人员的智慧。
0 请登录后投票
   发表时间:2008-09-15  
kaven 写道
所以没有专门的python/ruby开发工作也和正常,这个东西不是用来包打天下的,是用来粘合其他东西,但以后应该是每个开发人员必须会的。
我也觉得这种思路是正确的,java就是反其道而行之,pure java简直是走火入魔,简直就是再造个轮子,完全是浪费开发人员的智慧。


没有深入用过python,不太了解python的粘合效果。但从ruby来说,ruby要深入粘合C实在是不太简单。其根本原因在于Ruby是一个带有GC的语言,而C是没有GC的,用C写ruby的扩展是件充满陷阱的事情,如果不深入了解ruby的内存分配机制,写出来的C扩展要么内存泄漏,要么分配的内存被莫名回收导致段地址错误。据说ruby的API接口都是模仿Python的,考虑到Python也是带有GC的语言,从这一点来看,实在好不到哪里去。

Pure Java我曾经也非常鄙视,但我现在非常赞赏。JVM是一个带有自己独立的内存分配机制,带有GC的运行平台,这种能够自我管理内存的平台非常忌讳随意粘合,因为粘合就意味着平台把内存管理权限交给了第三方C库来管理,那么第三方库如果不深刻领会平台的内存管理机制,而自己随意分配内存,一定会造成严重的内存泄漏或者段地址错误之类的问题,就像ruby现在这样的后果。

0 请登录后投票
   发表时间:2008-09-15  
robbin 写道
kaven 写道
所以没有专门的python/ruby开发工作也和正常,这个东西不是用来包打天下的,是用来粘合其他东西,但以后应该是每个开发人员必须会的。
我也觉得这种思路是正确的,java就是反其道而行之,pure java简直是走火入魔,简直就是再造个轮子,完全是浪费开发人员的智慧。


没有深入用过python,不太了解python的粘合效果。但从ruby来说,ruby要深入粘合C实在是不太简单。其根本原因在于Ruby是一个带有GC的语言,而C是没有GC的,用C写ruby的扩展是件充满陷阱的事情,如果不深入了解ruby的内存分配机制,写出来的C扩展要么内存泄漏,要么分配的内存被莫名回收导致段地址错误。据说ruby的API接口都是模仿Python的,考虑到Python也是带有GC的语言,从这一点来看,实在好不到哪里去。

Pure Java我曾经也非常鄙视,但我现在非常赞赏。JVM是一个带有自己独立的内存分配机制,带有GC的运行平台,这种能够自我管理内存的平台非常忌讳随意粘合,因为粘合就意味着平台把内存管理权限交给了第三方C库来管理,那么第三方库如果不深刻领会平台的内存管理机制,而自己随意分配内存,一定会造成严重的内存泄漏或者段地址错误之类的问题,就像ruby现在这样的后果。


我觉得你说的问题是编写接口能力的问题,我自己也写过2个简单接口,没有想象中的那么困难,2个接口写的时间间隔比较长,以至于我每次都忘记应该怎么写的,所以我每次都是看着ruby的文档写的。而且作为粘合语言并不是说要求每个人自己去写每个接口,完全可以让库的开发者或者第三方提供,现在sf里面很多开源库的项目都是提供python/ruby的接口了,而且看上去这个是大趋势,根本没有必要自己写了。把现成的库拿来,快速拼凑一下,就是我们需要的系统。我对ruby最喜欢的东西就是gem,gem下来一堆东西,里面很多就是原生接口的,用下来都挺爽的。
所以我觉得这个内存泄漏问题被夸大了。当然ruby本身的内存泄漏的问题是另外一回事情,这个会随着发展,内存泄漏会逐渐减少。

另外就是我说的粘合并非是只粘合c,你可以粘合其他东西,比如我这里有一堆mail,需要做一些分类,但是sql好像功能有点弱,我就可以用用python/ruby来处理这些mail,有点类似于shell和linux的关系,而python/ruby更加强大,处理起来根据方便。
0 请登录后投票
   发表时间:2008-09-15  
我并没有夸大为ruby/python写C接口造成的内存泄漏问题,事实上这个问题现在还没有得到足够的重视,原因在于有规模的RoR/Python网站太少,还没有多少人经历过这个问题的困扰,但我关注和研究这个问题已经一年多了,而且现在已经有很多人为这个问题咨询过我了,我也为此写过不少文字。

写接口不难,但是你不让内存泄漏,就需要代码上非常仔细的处理。而且这种内存分配问题,你不在高负载长期运行的环境下是暴露不出来的,所以你意识不到这个问题的严重性。事实上我们现在使用ruby,会尽量采取直接操作系统进程调用方式,而不是原始接口,比方说用mini_magick,而不是RMagick,尽量规避ruby的原始接口gem库。

至于你说的用python/ruby写写shell脚本啥的,这是两码事。任何编程语言都可以做这种“粘合”。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics