锁定老帖子 主题:再论闭包
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2009-08-18
mathgl 写道 icewubin 写道 Juiz 写道 其实 java 不是真正的面向对象,充其量只是“面向类”,java 的啰嗦语法很容易导致冗长重复,继而产生连锁效应:
需要借助 IDE 生成代码,而生成代码的可读性就更差了; 长代码导致出错增加、重构困难、bug 迷雾; 代码越长,要求的注释越多; 为了分而治之,衍生出各种分层理论,design over code 之类的,但是层数越多,调用栈就越复杂,弹出巨大的 stack trace 你根本弄不清问题在哪 …… 这些问题归结到底,就是欠缺清晰、简洁的表达造成的。 OO 到了极致,从指令流程序变成数据流程序,便成为了函数式语言,这里头的东西几十年就研究通透了 …… 在精巧设计的 lambda 面前,很多杂乱的语言特性如 annotation、for in、try...catch 都变得没有价值,很多庞大的库和大量使用了 xml 的框架都会变成鸡肋 —— 因为用闭包可以更简单的做到。像上面的例子,很多人只看到少了 7 行,其实是少了 7/8 …… 可是现在 java 语言做一点点微小的进步都非常困难 …… 不进步便消亡,只是关系到数量庞大的公司和个人的利益,消亡的过程肯定比较缓慢。 照你的逻辑,Java早该灭亡了,有Lisp还要Java干嘛? 因为使用者众,程序也多,断无一夜之间全部消失之理。 Lisp诞生远比Java早。 |
|
返回顶楼 | |
发表时间:2009-08-18
说java消失的应该去面壁思过
|
|
返回顶楼 | |
发表时间:2009-08-18
蜀黍你乱入了。。
消亡的话,java早就消亡了,在很早以前,我就貌似听说过java,c++已死的言论 觉得也合理 但是消失还差的很远 现在都有人用COBOL~~但是cobol早就没有生命力了 |
|
返回顶楼 | |
发表时间:2009-08-18
Juiz 写道 icewubin 写道 照你的逻辑,Java早该灭亡了,有Lisp还要Java干嘛?Lisp是银弹啊?
你的逻辑中有一个很严重的误导就是,程序复杂以及代码可读性差是由于Java本身过于复杂造成的,而实际上绝大多数复杂性是由于固有的业务复杂性造成的,而不是语言本身。语言本身的提高只能缓解一定的编程复杂度,但是不能减少任何业务本来固有的复杂度,不存在银弹的。 你的意思是“不能减少任何业务本来固有的复杂度”,就不能减少程序员的劳动量? 引入一个好的语言特性,在代码中就能造成线性的差别(可读性和代码量上),连带影响 debug、测试代码量、影响架构、影响交流成本,差异到了工程中就是到指数级了,根本不是引入一个库/框架能比的。 当然糟糕的语言特性也会造成反效果罢了。 Lisp 是银弹有什么错的吗? http://page.mi.fu-berlin.de/prechelt/Biblio/jccpprt_computer2000.pdf 如果Lisp是银弹的话,为什么狼都还活着呢? 如果Lisp是银弹的话,是不是ruby之类的动态语言都能算是银弹么? |
|
返回顶楼 | |
发表时间:2009-08-18
最后修改:2009-08-18
火星叔叔马丁 写道 话说ruby还真是lisp一脉相传下来的
ruby受到lisp影响 其实要超过受到perl的影响 我知道啊,正因为我知道我才这么说的。 不过有人大言不惭的说Lisp是银弹,我还是比较佩服的(不会没看出我在说反话吧,哪有什么银弹语言),既然都是银弹了,还要其他语言干啥啊? |
|
返回顶楼 | |