ror 会打败 j2ee 么?

2015-01-22 17:06:57 +08:00
 otmb

网上溜达了下,宝石粉说ror是最优美,强大的技术,秒杀j2ee几条街啊:(
可是又听说java spring挺靠谱的,
这里有人同时搞ror和spring么?
说下对这两者的感受吧:)

4245 次点击
所在节点    程序员
45 条回复
wwqgtxx
2015-01-22 18:06:40 +08:00
几乎不太可能,ror到现在还是小众语言,java都是普及化教育,两者差距还是比较远,从应用成熟度来说也差了不少,想要追上,可不是一天两天的事
otakustay
2015-01-22 18:51:54 +08:00
这个就叫做:想多了……要说理由的话能写太多,累,不想写了- -
能打败JAVA的我至今一个都没看到,哪怕是世界上最好的语言PHP和开源就好像无比强大的C#和传说中只要一个语言就够的NodeJS,都差得老远了
另外Spring和ROR完全两个东西,你要人怎么比……
nine
2015-01-22 19:44:14 +08:00
应该不会
写java的忙着布道
写ruby的忙着创造

信徒数量比可想而知
msg7086
2015-01-22 20:21:28 +08:00
写Java可以工作挣钱。
写Ruby可以让人感到快乐。
ostholz
2015-01-22 20:36:52 +08:00
自从用过Ruby, ROR后, 我就再也不想看JEE一眼.
可惜, 很多(大)企业里都是JEE的天下.


@msg7086 不能更同意了
另外给一个吐槽JSF的网站.
ihatejsf.com
kavinyao
2015-01-22 20:43:30 +08:00
以前我也经常纠结这种问题,后来发现时间会说明一切。
otmb
2015-01-22 20:45:17 +08:00
@msg7086 ruby不可以赚钱么?
@nine 写ruby的忙着创造,啥意思?
lidashuang
2015-01-22 21:48:19 +08:00
写了两年ruby,觉得不会
otmb
2015-01-22 22:16:20 +08:00
@lidashuang ruby这么难啊?
redvoilin
2015-01-22 23:28:05 +08:00
这个没有可比性,java都流行多少年了,ruby在2004年才借着ror在世界范围内引起注意,那个时候java已经用的比较广泛了吧,推广java的大公司有多少,ruby是一个日本人发明开源语言,可想而知ruby的推广力度有多少,一个语言能不能广泛应用真不是它有多优秀决定的,我相信,如果让同时会java和ruby的人做一个web应用,没多少会选java吧
otmb
2015-01-22 23:53:21 +08:00
@redvoilin 搞j的人说ruby做不了复杂网站:(是这样子么?
msg7086
2015-01-23 00:24:09 +08:00
@otmb 可以赚钱啊,只是机会没那么多。
Java基本就是拿一大堆库来揉在一起,并且不停地和编译器做斗争。好处是傻瓜都会,不担心写出来的东西没后人懂。ruby 对脑力要求要高不少。
otmb
2015-01-23 01:02:30 +08:00
@msg7086 不停地和编译器做斗争,啥意思?
msg7086
2015-01-23 02:55:08 +08:00
咦 提醒系统挂了么没收到你的at提醒。
既然起床了那就用电脑回复你了。

这么说吧,写Java你得非常完整地实现各种设计模式,非常仔细地处理异常,等等。
这是一种臃肿式的开发,对于设计超大型系统(例如银行系统)非常好,因为这些系统不在乎钱的问题,可以招1000个码农来开发一个系统,每个人只要在设计模式的保护下负责自己的一小部分就行了。

而Ruby,或者说RoR,则是提倡灵活性。花点时间写一个测试,再花点时间编码,然后让自动化测试来保证程序的正常运行。同样一个网站可能只要10个人来做就行了。

Ruby被人称道的地方也是为人诟病的地方,就是他的灵活性。你永远不知道一个Ruby程序员做一件事情会用什么样的代码来做,甚至是你从来没想过的方法。我之前就遇到过一个栗子,你有时间的话不妨试一下。

用C/C++/Java/C#/Python等语言实现以下功能。再用Ruby实现一遍。
给定一个二维的字符数组(或者相同功能的容器),从左上角按逆时针连接字符串输入。
比如

spiral_print([
['a','b','c','d'],
['e','f','g','h'],
['i','j','k','l']
]) # -> 'aeijklhdcbfg'

spiral_print([
['a','b','c','d']
]) # -> 'abcd'

string spiral_print(vector<vector<int>> matrix);
msg7086
2015-01-23 03:06:59 +08:00
好像漏说了编译器问题。
Java是个很古老的语言,结局就是为了兼容以前的设计,所以得不停上一些难看的hack。
之前的泛型就是个典型。
同理还有那几个不是对象的基本类型,以及因此带来的装箱拆箱问题,和因为装箱拆箱而带来的各种坑。
像Ruby这样更接近纯OO的动态语言里,用 2.days.ago 或者 1.megabytes 都是习以为常的事情。
很快你就会被这些语言惯坏了。你想想在Java里获取2天前的DateTime你会写得多痛苦。
iamshaynez
2015-01-23 10:56:45 +08:00
Java和如今活跃的语言比,很多时候就像一个老迈严谨的大叔,跟创业阶段的年轻人。后者有想象力,活跃,但难以预期,前者控制着这个世界主流的财富和资源,异常的自律,喜欢规则,严格约束。

这是自我进化的结果,所以java如今在所有巨型公司内部,所有需要稳定性大于效率的系统上都是唯一选择。作为同时写Java和业余写php和swift的程序员,站在公司的角度java的优秀在于,代码虽然臃肿但是非常易读,人员流动的再频繁带来的隐患也是相对偏小的,代码review的时候WTF/min的数量,java基本上是小于其他语言的项目的。
freeswift
2015-01-23 15:04:24 +08:00
@iamshaynez 分析的靠谱
windyboy
2015-01-23 16:44:50 +08:00
ror 要做到j2ee 目前做到的事情,一样会弄得复杂无比
只是爱好者,随便写个可以运行的程序,ror优势明显
otmb
2015-01-23 20:30:31 +08:00
@windyboy ror不能开放复杂程序?
redvoilin
2015-01-24 00:16:35 +08:00
@otmb 当然可以开发了,哪种编程语言不能开发复杂的程序?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/164546

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX