该帖已经被评为隐藏帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-06-19
招聘网上,rails好像没有什么工作机会啊.用的人不多吧
|
|
返回顶楼 | |
发表时间:2009-06-19
最后修改:2009-06-19
1、从现实层面出发,java on rails基本不可能。因为一个庞大的产业链已经形成,java on rails会让很多人失业,会让IBM和BEA倒闭(从BEA已经倒闭的事实也可以看出来,所谓的app server在j2ee产业链中不过是二等公民)。 2、从技术层面讲,是有可能的。rails的代码量少主要是2方面,一是全栈式框架和约定优于配置的思想。二是动态语言本身的优势。java吸取第一点,同样可以有效的减少代码量。 3、我觉得讨论使rails项目具备平滑更换持久层框架的事情是没有意义的。全栈式框架和约定优于配置基本上是一体两面,正因为是全栈式的,大家都是一伙的,才能在大量共同约定的情况下合作无间。如果要保持业务代码完全不变的情况下,平滑切换到另外一个与ActiveRecord实现理念完全不同的持久框架,唯一的途径就是“加一层”,于是代码量必然增加,Java现在不就是这样吗。依赖于框架是一件很邪恶的事情吗,如果我们永远也不会换框架。 你想要速度吗,OK,你必须接受约束;你想要自由吗,OK,把速度降下来。你自己选。 |
|
返回顶楼 | |
发表时间:2009-06-19
最后修改:2009-06-19
看看playframework。
http://www.playframework.org/ |
|
返回顶楼 | |
发表时间:2009-06-19
最后修改:2009-06-19
java on rails 从技术层面讲是不可能的 …… 如果有可能,以海量的程序员,一个都做不出来 ? 唯一的方法是语言改造,所以 groovy 可以 grails,scala 可以 lift,但是 java 不行 ……
an_array.map {|e| params[:scale] * e}
Mappable<int> mi = new Mappable<int>(){ public int scale; public int invoke(int v) { return v * this.scale; } }; mi.scale = params.getAttribute("scale"); an_array.map(mi);
统计上的五倍代码量差距不是简简单单的"领悟了xx思想“就能缩小的,里面的细节可多了 …… |
|
返回顶楼 | |
发表时间:2009-06-19
世说新语 写道
1、从现实层面出发,java on rails基本不可能。因为一个庞大的产业链已经形成,java on rails会让很多人失业,会让IBM和BEA倒闭(从BEA已经倒闭的事实也可以看出来,所谓的app server在j2ee产业链中不过是二等公民)。 2、从技术层面讲,是有可能的。rails的代码量少主要是2方面,一是全栈式框架和约定优于配置的思想。二是动态语言本身的优势。java吸取第一点,同样可以有效的减少代码量。 3、我觉得讨论使rails项目具备平滑更换持久层框架的事情是没有意义的。全栈式框架和约定优于配置基本上是一体两面,正因为是全栈式的,大家都是一伙的,才能在大量共同约定的情况下合作无间。如果要保持业务代码完全不变的情况下,平滑切换到另外一个与ActiveRecord实现理念完全不同的持久框架,唯一的途径就是“加一层”,于是代码量必然增加,Java现在不就是这样吗。依赖于框架是一件很邪恶的事情吗,如果我们永远也不会换框架。 你想要速度吗,OK,你必须接受约束;你想要自由吗,OK,把速度降下来。你自己选。
1. BEA被收购的原因,主流说法是收购它的中间件和SOA产品有利于增强oracle产品线,以与SAP、IBM竞争。被收购 和 亏损倒闭 还是有很大区别的。这个事件不能证明“app serser在j2ee产业链中不过是二等公民” java产业链上的公司做java on rails的驱动力在哪?障碍是什么?需要全面分析一下。 rails进入java领域会不会使大公司IT资产贬值,从而影响其既有市场地位?有可能。但由于jruby可以做到字节码兼容,并且还能带来新的增长点,因此,这种冲击不是致命,也不是绝对不可调和的。 “java on rails会让很多人失业,会让IBM和BEA倒闭”没有什么实质性的依据。 2. rails的优势确实是这两方面。“java吸取第一点,同样可以有效的减少代码量”,java经过rails的冲击,通过若干新兴框架已经充分证明了这一观点。但语言层面(第二点)跟不上,就不要幻想再有什么惊喜了,也不要幻想达到ruby同等代码量效果了。 3. 前面已经讨论过了,不改代码只换orm框架是个伪需求。同时,rails中“约定优于配置”这一思想发展至现在,已经有了新的迹象,那就是,一部分约定已经不局限于rails框架,而成为一种最佳实践或普通的编码风格,为rails之外的世界普遍接受,这时,某些框架绑定性就不存在了。 试过rails的都知道,很久以前它的几个功能组件都已经是可以替换的,DHH还为此专门写了一篇博客。唯一的问题是内部实现不好,所以要写rails3。一栈式只体现在新手友好性上,一装就全带了,上手快,两分钟就能运行起来。但这并不限制替换部分组件。很多人对一栈式的误解跟对代码生成的误解一样大。
|
|
返回顶楼 | |
发表时间:2009-06-19
最后修改:2009-06-19
night_stalker 写道
java on rails 从技术层面讲是不可能的 …… 如果有可能,以海量的程序员,一个都做不出来 ? 唯一的方法是语言改造,所以 groovy 可以 grails,scala 可以 lift,但是 java 不行 ……
an_array.map {|e| params[:scale] * e}
Mappable<int> mi = new Mappable<int>(){ public int scale; public int invoke(int v) { return v * this.scale; } }; mi.scale = params.getAttribute("scale"); an_array.map(mi);
统计上的五倍代码量差距不是简简单单的"领悟了xx思想“就能缩小的,里面的细节可多了 ……
HashSet<int> set = new HashSet<int>(){1,2,3}; var result = from item in set select item * scale; ------------------------------------------------------------------------------------ 这是ruby的源头perl的写法 @set=(1,2,3) @set=map $_*scale.
我觉得这个更像是掌握了那个语言的公司的态度问题。。。。
static void Print(string text, int offset)
比如这个东西,只有一个方法,一行语句,很满足另外那个帖子,简约优雅 之类的,但三个月后,读起来就要花功夫了。 |
|
返回顶楼 | |
发表时间:2009-06-19
最后修改:2009-06-19
"我觉得java中所谓的业务层中立根本就是个扯淡需求,是一个被过分夸大了的小概率事件!"
这句话对Java的框架设计过度的总结太好了! |
|
返回顶楼 | |
发表时间:2009-06-19
night_stalker 写道
java on rails 从技术层面讲是不可能的 …… 如果有可能,以海量的程序员,一个都做不出来 ? 唯一的方法是语言改造,所以 groovy 可以 grails,scala 可以 lift,但是 java 不行 ……
an_array.map {|e| params[:scale] * e}
Mappable<int> mi = new Mappable<int>(){ public int scale; public int invoke(int v) { return v * this.scale; } }; mi.scale = params.getAttribute("scale"); an_array.map(mi);
统计上的五倍代码量差距不是简简单单的"领悟了xx思想“就能缩小的,里面的细节可多了 …… 是闭包带来的优势么?
我是刚来的初学RUBY者:)选ROR是因为讨厌jsp。
现在看erb还不错! |
|
返回顶楼 | |
发表时间:2009-06-19
最后修改:2009-06-19
不懂Ruby。但是就你说的代码少,写的是快,修改,扩展快我觉得难说。
因为在业务逻辑简单的情况下是这样。但是一旦复杂。代码少,反而慢 |
|
返回顶楼 | |
发表时间:2009-06-19
最后修改:2009-06-19
代码越长越难改,这道理太简单了 …… 修改的代价和创建的代价基本成正比。
有人可能不同意:myeclipse 生成代码也很容易啊,为什么改起来这么难。—— 因为它给了你生成的工具,没给你改的工具 …… 至于扩展 …… 和动态语言比灵活性不是自取其辱么 …… 代码是否易读,很大一部分是程序员的问题。 反正我觉得 and、or 比 && 和 || 容易读, def 比 public static void 容易读。 把充斥大量无用信息的代码换成空白,易读性绝对会增加 …… 如果觉得写太短浪费了 apm,多空几行,写段小诗吧。 |
|
返回顶楼 | |