作者dragonyy (dragon)
看板Ruby
标题Re: [问题] 学习ruby只能迈向rail吗?
时间Thu Jun 11 19:57:35 2015
原文恕删。提供一下经验谈。
写了满久的Ruby,虽然效能很糟(我是在做文字处理的),但是人的生产力很高,
所以拿来做产品的prototype(不限於网页),或是将产品分成好几个部分,处理
效能要求没有那麽高的地方是很合适的。
另一方面,假如人的进用没那麽容易的话,训练一个合格的Ruby码农成本其实是比
较低的(和Java比;和C++那就不用比了)。如果你考虑帮公司雇人的话,这也算是
一个考量点。
第三,如果你不用Rails,那麽在用MRI写一段时间,嫌效能不好的时候,可以在几乎
没什麽改源码的状况下改用JRuby来执行你的程式,是强在没有GIL,所以可以真的平
行处理。虽然Ruby的Thread控制还满原始的,但是有人帮忙写出 concurrent-ruby,
Celluloid, EventMachine 等等套件(都在Github上),实质上地帮助写出好的多绪
程式,什麽Executors, Future, Actor Model 等等都已经有人帮忙做好了,最近试
用的结果是一直後悔为什麽不早点看到这些套件。
再来,写程式大概都在「整合」,後端是什麽,有没有对应的套件很重要。在我工作
上碰到的,不管是 Redis, MongoDB, MySQL/PostgreSQL, 甚至现在最依頼的
ElasticSearch (已改名叫做 Elastic),Ruby的相关套件都出得很快,回报有臭
虫解的速度也快。至於XML, JSON, protobuf 等等资料格式,在嫌不够快的时候就
已经有人用C, C++, Java(JRuby) 帮忙加速了,这是Ruby生态圈的一个很大的优点。
再来,如果你对「测试」有兴趣,不管是单元测试、整合测试、非功能测试,Ruby
生态圈下的功夫很深,像RSpec, Cucumber这种测试用的专门套件都已发展得相当成
熟,就算只拿来研究都很有成就感,更别说开发产品的时候离不开它们了。
最後想提一点,如果是认真的开发Ruby程式的话,最有效率的方式是赶快学会、学
好一个 Ruby gem 要怎麽包起来,要怎麽用来符合开发程式的总体需求。你不一定
需要放在Github上,自用也是相当好用的。
目前在积极地学习Java,不过也只会用在某个效能瓶颈上而已,不会全部改写。
希望这对於学Ruby的人有点帮助。不过还是建议有空的话要学一下Python啦,就
业市场上应该是有用的,哈哈。
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.136.78.3
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Ruby/M.1434023858.A.4B6.html
1F:推 Neisseria: 推大大的经验谈 06/11 21:31
2F:推 LaPass: ruby连自己人都嫌效能差啊... 06/12 00:39
3F:→ dragonyy: New MacBook vs MacBook Pro, just like that 06/12 08:28
4F:推 david50407: Ruby效能有在改善了,经验推 06/12 15:18
5F:→ danny8376: 当然嫌效能差啊 这点python也一样啊XD 直译语言常态www 06/12 17:54
6F:→ dragonyy: 还有GIL,说起来难以见人啊 06/12 23:45
7F:推 mars90226: 到底甚麽时候MRI才要拿掉GIL阿QQ 06/13 11:38
8F:推 ireullin: 效能的好坏有一大部分来自於你程式的写法 06/15 13:42
9F:→ ireullin: 而不是程式语言本身 06/15 13:42
10F:推 semicoma: 根据xdite的说法 ruby够好了 要做的是改善写法 06/16 17:13