回帖整理: 关于"学习Java社区"更清晰的思路
@jt
1. 我没说谁说Java万能, 我只是针对你的这种言论, 我说的很清楚, 言论变成一种惯性的说法, 这里头就存在大量问题.
2. 我更没说你说Java更面向对象, 只是说C#和Java这样的面向对象语言已经限制了他们能做到的编程方式, 所以Java那点东西在编程思想上根本只是很小的一块.
3. 你说学术成果更青睐Java, 你可以说说哪些学术成果, 不要空喊口号. 倒是C#上面的委托和泛型都比Java强, DLR也走在Java前面, F#这样的东西, Java社区连有都没有. 这些对于编程比较根本的特性, 比你所谓的成果要基本的多, 也重要的多. 不是你不能比, 而是你不愿意去比, 你宁愿留在Java方向更高明的错觉里.
4. 另外, 你的另一个谬误是, 真正核心的手法或思想, 没有什么是在Java领域出现的. DP95不是, 各种面向对象的原则不是, MVC不是, 几乎就没有东西是. 这些东西在Java出现之前就大规模的被讨论和普及了, 只是那会儿*你*不知道而已. 所以我说, C#在这方面没有什么可象另一个拾人牙慧的抄袭者学习的. 当然, Java领域有一些具体的产品/开源产品先出现, 这和Java背后的大公司选取了不同的文化手段有关. 但是对于一个程序员的编程能力来说, 产品只是最终结果, 可以学习的东西相当表面. 再说一遍, 你的说法, 根本没有事实支撑, 这才是你的话站不住脚的根本原因.
5. 关于ORM, 各有各的认识, 我也不跟你多说, 你自己多上国外看看, 在支持面向对象的阵营中本来就分为两派, 一直没有停止过争吵; 面向对象以外的阵营, 还用说吗? 这种争吵更不可能结束. 只是显然这样的问题被Java社区广泛讨论(我指的课题只是一个说法, 并不是严肃的说学术圈内的重大课题), 出现的频率相当的高. 至于这样的某一种设计方式和另一种具体实现的冲突, 是否和FP, 委托, 泛型, 根本的设计原则是一个层面的东西, 你自己判断.
6. Fowler这样的人, 根本跟学术两字挂不上钩, 这点我想不用多说了吧? 我提到GOF, 并没有说他们怎么样似乎, 只是说你要是讨论Java社区的优点, 就必须首先从面向对象思想这一核心问题谈起, 你要是赞同框架, 就应该对GoF的言论有所理解. 想要证明什么, 可以从这些问题出发, 掰开揉碎的去证明面向对象各种理论(好歹至少Java社区倡导的得说到位吧? )的先进性, 框架产品的必要性, 然后才是Java社区存在超越其他社区价值这一说法的合法性, 而不是空喊向"XXX社区"学习的口号. 相反现在我就是在学习你, 喊出: 象C++社区学习, 象FP社区学习, 象数据社区学习, 象C/汇编社区学习, 象除Java外任何社区学习, 都是口号, 好歹我可以说清楚为什么.
7. AOP的问题, 我说的很清楚了, AOP的出现无可厚非, 但是作为一个事实, 一个补丁被热炒, 这个现象说明了Java社区所谓在设计思路上的*整体*领先是不是靠得住. 你要不认真看我说了什么, 或者瞎矫情, 那你不必跟我讨论下去. 否则你就要证明AOP没有被热炒, 但这显然不符合实情.
8. 不是我反映过激, 我没什么可激的. 什么用起来对我最有利, 我就不能抗拒什么, 因为我要完成工作, 对这一点我相当清楚. 我只是告诉你, 我没有看到Java社区的先进性, 是有理由支撑的. 而你没有拿出任何理由和事实去支撑你的口号, 唯一的在辩论中取得胜利的方法, 就是假设我可能不知道Java社区有什么, 可这种假设并不见得可靠.
9. 谁说我没给别人带来什么? 我现在对.NET初学者最大的贡献, 就是横扫一切不负责任的言论, 省得他们心中迷惑. 我用不着贴什么汇编代码或者写技术文章, 先证明我的技术实力, 因为技术实力只和我的前途有关, 我无须为了展示这个, 浪费大量时间. 再者, 你我讨论的是"Java社区很值得学习", 这一论题, 那么我们就围绕"Java社区的价值"展开, 摆事实就可以了. 可惜, 除了某些具体产品上的领先之外, 我没从你的任何口号中看到事实. 如果有人非跟我说.NET社区比Java社区先进多少, 只要我看见了, 我照样要吭声. 实际上, 我认为这两个社区共性大于异性, 无论是在水平上还是什么方面, 具体方向的不同, 根本说明不了什么问题.
10. 我对大师没有敌意, 也不否认大师的贡献, 因为我犯不着, 我在臭NB, 也不妨碍人家比我水平高得多; 我只是告诉大家, 面向对象的圈子很窄, 作为一门构筑在面向对象上的语言, Java的圈子更窄. 把眼光放的更宽一些, 就会知道, 没什么根本性的东西是非得在Java社区中学习的.
11. 你表达的意思有没有错, 必须有事实支撑, 不然别人怎么判断你说的有没有错? 比如我吧, 设计模式的知识要点主要来自于DP, 设计原则来自于实践加思考, 对语言的认识来自于对非Java/C#类语言阵营的声音的反思, 还有很多东西四处(包括.NET阵营内部)都学得到; 没有什么是我发现非得象Java社区学习的, 要知道一个反例就能证明一个命题的错误. 在一个本来只是.NET相关的讨论中, 你非要提这种扯皮条的话题, 那么我对你的反感, 难道是毫无道理么?
1. 我没说谁说Java万能, 我只是针对你的这种言论, 我说的很清楚, 言论变成一种惯性的说法, 这里头就存在大量问题.
2. 我更没说你说Java更面向对象, 只是说C#和Java这样的面向对象语言已经限制了他们能做到的编程方式, 所以Java那点东西在编程思想上根本只是很小的一块.
3. 你说学术成果更青睐Java, 你可以说说哪些学术成果, 不要空喊口号. 倒是C#上面的委托和泛型都比Java强, DLR也走在Java前面, F#这样的东西, Java社区连有都没有. 这些对于编程比较根本的特性, 比你所谓的成果要基本的多, 也重要的多. 不是你不能比, 而是你不愿意去比, 你宁愿留在Java方向更高明的错觉里.
4. 另外, 你的另一个谬误是, 真正核心的手法或思想, 没有什么是在Java领域出现的. DP95不是, 各种面向对象的原则不是, MVC不是, 几乎就没有东西是. 这些东西在Java出现之前就大规模的被讨论和普及了, 只是那会儿*你*不知道而已. 所以我说, C#在这方面没有什么可象另一个拾人牙慧的抄袭者学习的. 当然, Java领域有一些具体的产品/开源产品先出现, 这和Java背后的大公司选取了不同的文化手段有关. 但是对于一个程序员的编程能力来说, 产品只是最终结果, 可以学习的东西相当表面. 再说一遍, 你的说法, 根本没有事实支撑, 这才是你的话站不住脚的根本原因.
5. 关于ORM, 各有各的认识, 我也不跟你多说, 你自己多上国外看看, 在支持面向对象的阵营中本来就分为两派, 一直没有停止过争吵; 面向对象以外的阵营, 还用说吗? 这种争吵更不可能结束. 只是显然这样的问题被Java社区广泛讨论(我指的课题只是一个说法, 并不是严肃的说学术圈内的重大课题), 出现的频率相当的高. 至于这样的某一种设计方式和另一种具体实现的冲突, 是否和FP, 委托, 泛型, 根本的设计原则是一个层面的东西, 你自己判断.
6. Fowler这样的人, 根本跟学术两字挂不上钩, 这点我想不用多说了吧? 我提到GOF, 并没有说他们怎么样似乎, 只是说你要是讨论Java社区的优点, 就必须首先从面向对象思想这一核心问题谈起, 你要是赞同框架, 就应该对GoF的言论有所理解. 想要证明什么, 可以从这些问题出发, 掰开揉碎的去证明面向对象各种理论(好歹至少Java社区倡导的得说到位吧? )的先进性, 框架产品的必要性, 然后才是Java社区存在超越其他社区价值这一说法的合法性, 而不是空喊向"XXX社区"学习的口号. 相反现在我就是在学习你, 喊出: 象C++社区学习, 象FP社区学习, 象数据社区学习, 象C/汇编社区学习, 象除Java外任何社区学习, 都是口号, 好歹我可以说清楚为什么.
7. AOP的问题, 我说的很清楚了, AOP的出现无可厚非, 但是作为一个事实, 一个补丁被热炒, 这个现象说明了Java社区所谓在设计思路上的*整体*领先是不是靠得住. 你要不认真看我说了什么, 或者瞎矫情, 那你不必跟我讨论下去. 否则你就要证明AOP没有被热炒, 但这显然不符合实情.
8. 不是我反映过激, 我没什么可激的. 什么用起来对我最有利, 我就不能抗拒什么, 因为我要完成工作, 对这一点我相当清楚. 我只是告诉你, 我没有看到Java社区的先进性, 是有理由支撑的. 而你没有拿出任何理由和事实去支撑你的口号, 唯一的在辩论中取得胜利的方法, 就是假设我可能不知道Java社区有什么, 可这种假设并不见得可靠.
9. 谁说我没给别人带来什么? 我现在对.NET初学者最大的贡献, 就是横扫一切不负责任的言论, 省得他们心中迷惑. 我用不着贴什么汇编代码或者写技术文章, 先证明我的技术实力, 因为技术实力只和我的前途有关, 我无须为了展示这个, 浪费大量时间. 再者, 你我讨论的是"Java社区很值得学习", 这一论题, 那么我们就围绕"Java社区的价值"展开, 摆事实就可以了. 可惜, 除了某些具体产品上的领先之外, 我没从你的任何口号中看到事实. 如果有人非跟我说.NET社区比Java社区先进多少, 只要我看见了, 我照样要吭声. 实际上, 我认为这两个社区共性大于异性, 无论是在水平上还是什么方面, 具体方向的不同, 根本说明不了什么问题.
10. 我对大师没有敌意, 也不否认大师的贡献, 因为我犯不着, 我在臭NB, 也不妨碍人家比我水平高得多; 我只是告诉大家, 面向对象的圈子很窄, 作为一门构筑在面向对象上的语言, Java的圈子更窄. 把眼光放的更宽一些, 就会知道, 没什么根本性的东西是非得在Java社区中学习的.
11. 你表达的意思有没有错, 必须有事实支撑, 不然别人怎么判断你说的有没有错? 比如我吧, 设计模式的知识要点主要来自于DP, 设计原则来自于实践加思考, 对语言的认识来自于对非Java/C#类语言阵营的声音的反思, 还有很多东西四处(包括.NET阵营内部)都学得到; 没有什么是我发现非得象Java社区学习的, 要知道一个反例就能证明一个命题的错误. 在一个本来只是.NET相关的讨论中, 你非要提这种扯皮条的话题, 那么我对你的反感, 难道是毫无道理么?