锁定老帖子 主题:MF高度评价DHH和RMH宣称J2EE将死
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-07-12
macro没有利用任何反射能力,和类型也没有关系
Lisp macro(我只知道Common Lisp)的macro主要是开放编译器内部的结构,把词法分析、语法分析和语义分析和执行中间割裂(不过S-Expression非常简单,基本上没有语法),Lisp的S-expression只管形式正确,而Lisp Form才管语义,用户编写的macro扩展的过程是把s-expression翻译成Lisp Form,经过Lisp的编译,然后才被执行。也就是说同一个macro针对不同的数据可能产生不同的Lisp Form(或者说不同的Lisp代码),执行效率也非常高。这是我讲的对同一个类的同一个方法,第一次执行,我们用Ruby的instance_eval动态根据不同对象生成它自己的singleton method的过程,第2次执行就类似于已经“编译”了。 虽然和你讲的东西都有关系,但我表达的主题不再这些东西上。这并不是动态语言的特性,也不是函数型语言的特性,也不是反射的问题。虽然都有关系。 我不太喜欢看到评论的时候把Ruby/PhP/Python这样列一遍,他们是不同的,只浮在这个层次,那讨论没有任何意义 另外:http://wiki.rubytao.com/RubyTAO/page/show/RubyBlock+vs+LispMacro |
|
返回顶楼 | |
发表时间:2006-07-12
about Ruby DSL. 来这里吧
http://forum.iteye.com/viewtopic.php?t=21273 |
|
返回顶楼 | |
发表时间:2006-07-12
我对空头讨论不是很感兴趣
当年为了看设计模式去买Smalltalk Best Practice patterns,为了学习Smalltalk Best Practice patterns,我看了两本smalltalk的书。这一年多来为了学习Ruby我重新看了一本smalltalk的书,用翻译软件看了Ruby Hacking Guide,并且根据Ruby 1.8自己写了很多Ruby源代码方面的体会,一直跟踪着YARV的发展。 另外我从头到尾把OnLisp和Practical Common Lisp的例子仔仔细细都做了一遍,Paul Graham 的文章全部仔细阅读了好几遍,并且一直在关注Lisp这个社团。 我相信自己对Smalltalk和Lisp都有一定的了解。而对JavaScript,Python和C#我根本不了解,所以我没办法讨论。 Lisp是一种伟大的语言,但我对目前的Lisp社团很失望。最大的失望是他们更多关心别的语言多于对Lisp的讨论,经常的论调是什么东西在Lisp里面n年前都已经有了。在我看来是没有信心的表现。 而在Ruby社团,完全是不同的景象,大家最关心、讨论得最多的就是Ruby。就拿我自己来说,我在学习Ruby,我只关心Ruby可以作到什么样子,Ruby可以从别的那里借鉴到什么。对于别人讨论Ruby只不过是什么什么,我不敢兴趣,我相信自己的感觉,并且关心别的语言可以做什么还不如更多地关心Ruby本身。 |
|
返回顶楼 | |
发表时间:2006-07-12
potian 写道 我对空头讨论不是很感兴趣
当年为了看设计模式去买Smalltalk Best Practice patterns,为了学习Smalltalk Best Practice patterns,我看了两本smalltalk的书。这一年多来为了学习Ruby我重新看了一本smalltalk的书,用翻译软件看了Ruby Hacking Guide,并且根据Ruby 1.8自己写了很多Ruby源代码方面的体会,一直跟踪着YARV的发展。 另外我从头到尾把OnLisp和Practical Common Lisp的例子仔仔细细都做了一遍,Paul Graham 的文章全部仔细阅读了好几遍,并且一直在关注Lisp这个社团。 我相信自己对Smalltalk和Lisp都有一定的了解。而对JavaScript,Python和C#我根本不了解,所以我没办法讨论。 Lisp是一种伟大的语言,但我对目前的Lisp社团很失望。最大的失望是他们更多关心别的语言多于对Lisp的讨论,经常的论调是什么东西在Lisp里面n年前都已经有了。在我看来是没有信心的表现。 而在Ruby社团,完全是不同的景象,大家最关心、讨论得最多的就是Ruby。就拿我自己来说,我在学习Ruby,我只关心Ruby可以作到什么样子,Ruby可以从别的那里借鉴到什么。对于别人讨论Ruby只不过是什么什么,我不敢兴趣,我相信自己的感觉,并且关心别的语言可以做什么还不如更多地关心Ruby本身。 那个帖子是为了potian划演讲场的。 讨论Ruby,我还了解不多,还不够资格讨论。smalltalk也是。 potian每提出一个名词,我就要去查半天。那些只是资料的整理。 回到这个帖子。 Robbin把RoR rocks,和Java将死放在一起。 不由得令人联想。Java将死主要是因为本身的僵化原因,还是因为Ruby这样的新型武器崛起。 我写的内容,基本上围绕Java是否有挽救的希望。倒不是因为对Java有很深的感情。Java的很多语法令人恼火。ajoo发过很多抱怨的帖子,估计体会更深。 而是一种对其他语言的不信任案:另一种语言又能好到哪里去? 同时还是希望有这样一种语言,能有这样的跨度。 正如当年的c对汇编,对cobol, C++ 对 c, java 对 c++ ruby, python, php5, c#列在一起,是因为我几次想实现多语言上的系统移植 (我一直比较喜欢MS的多语言无缝继承概念),大致观察了它们的特性。 只是我比较愚钝,几次尝试之后,并没有看出来太多的吸引力。也主要是因为时间和功夫没有花到,没有真正理解到里面的精髓。 既然这个帖子引出了potian的玉,砖总得继续抛下去。总要靠尽自己熟悉的东西说两句。 不过,有关Ruby深入的东西,我还没有资格讨论,只是保持关注、发问、资料查询补充。 |
|
返回顶楼 | |
发表时间:2006-07-12
可能你误解了,我只是看了太多玩Lisp的人类似的言论,一时吐了些想法而已,看起来倒象是吹牛加打击你了,不好意思
|
|
返回顶楼 | |
发表时间:2006-07-12
:D
没关系。本来这个帖子就有一半是Ruby的。 我发的提到Ruby的内容就有骗贴之嫌。因为我还没有深入了解Ruby。 不过,确实希望你能把Smalltalk, Ruby DSL之类的继续下来。 骗贴也是为Robbin的帖子骗的。:D 那个什么smalltalk receive, method execute。我搜索了一下,没找到什么明白的信息。毕竟一点都没有接触过。 |
|
返回顶楼 | |
发表时间:2006-07-12
Robbin发新闻帖的水平越来越高,呵呵
不过这两个新闻联系在一起确实不能不让人产生某些联想 |
|
返回顶楼 | |
发表时间:2006-07-12
这两个新闻放在一起自然有用意的。
MF对DHH的表扬主要体现在对于框架应该如何正确定位上,而RMH批评的恰恰就是Java框架的定位问题。rails和Java正好是一个问题的正反两方面的例证。 点睛之句是: Martin Folwer 写道 Perhaps it reflects my Unix background, which thrives on many tools that do one thing well, rather than a complex tool that tries to do many different things.
这个观点其实非常值得玩味,不光是编程语言,其实这个世界上的很多事情都是这样的,就拿JavaEye来说,也是一样,偏执的追求仅仅做好一件事情,而不是样样都想做好。其实就是Google,也是坚持把搜索这件事情做到了最好,所以它很成功。 再举个例子来说,Hibernate其实已经越来越复杂了,Hibernate3.2支持的对象映射关系和种类实在花样繁多,绝大多数连我都没有掌握,但是实际项目中,这些复杂的映射被用到的情况少之又少,就算用到,也有办法绕过。 回想Hibernate2.0和现在3.2比较,就会发现Hibernate在走一条大而全的路线,企图囊括越来越多的功能,但是同时对它的抱怨也是与日俱增。为什么不像DHH那样偏执的坚持框架的简洁性,只追求做好单一的事情呢? 所以从某种程度上来说,rails的成功不是语言的成功,而是坚持了正确的做事情的方式。 |
|
返回顶楼 | |
发表时间:2006-07-12
(奇怪,这么耸人听闻的标题,竟然没有引来一片哗然。本以为应该有很多java铁杆fans跳出来的。)
抬一下杠。我怎么觉得。 Rails is one tool that tries to do at leat 3 things : template, controller, OR model, and test script, database migration, web service, web test, DSL, etc. 相反,java 的很多framework就是做一件事情。 做OR的做OR,作IoC container的做IoC,作template的做template,做mvc 的做mvc。DSL Business Rule就做DSL Business Rule。 组合起来做一件事情 -- web开发。many tools that do one thing well Just kidding。话嘛,怎么说都行。 还是回头专注于fact 。 将死的java 还是有一个阵地可以退守,大型电子商务网站。 另外,大型金融中间件还有不少 C++ Corba。Java把JTS做好,去挤这块吧。 |
|
返回顶楼 | |
发表时间:2006-07-12
我现在担心Ruby的编程远远比Java复杂的多,对某些人可能是发挥创造力的利器,而对另外人可能意味着灾难
用Java大家都一样,但是用Ruby,程序员之间的差距可能就很容易体现出来了,这里的问题有正反两面 譬如,曾经最成功的电子商务网站是Paul Graham用Lisp搞的Yahoo Store,但据说最近要被换成一种项目经理都可以掌控的语言,免得被一些天才的程序员搞死 http://www.paulgraham.com/avg.html 的文章也值得一读 ----- 当然,Ruby从语法上已经作了很多的努力让代码更加可读和可维护,更加自然 但是DSL的使用者和创造者可能有非常大的差别 |
|
返回顶楼 | |