C# vs. Java:相反的思维方式 (译文)
上一周看到这两篇文章,一直时间不充裕,这两天把它们译出,给大家做个参考。(本文仅为了传播更多的信息而提供,并不表示本人赞同其观点和看法。另:翻译可能有瑕疵,可以参照原文指正。谢谢!)
作者: Aaron Hohnson 发表于: September 21, 2004
大家都看到了 Malcolm Davis 刚刚发表的那篇“C# vs. Java:相反的思维方式”了吧?你也注意到:sourceforge 上 Lucene.NET 的主持者关闭了项目,带着他们的玩具回家去了吧?我接着 Malcolm 的话题,说说这两件事之间的关系。
大体而言,.NET 社区的参与者总是在谈论 Microsoft 推出的最新的、最强大的东西:MapPoint Location Server,SQL Server,Longhorn,ASP.NET 2.0,Visual Studio,所有来自雷德蒙(Redmond,微软总部所在地)的产品。相反的,Java 社区的程序员在那里谈论 JBoss,Hibernate,Struts,Eclipse,这些东西没有一个来自硅谷。
Malcom 的文章说,.NET 开发者接受 Microsoft 提供的工具和服务,我想这在很大程度上是对的。.NET 开发者很少花时间,开发持续层方案(persistence layers),web 应用程序框架(web application frameworks)或者缓存解决方案(caching solutions),因为 Microsoft 已经为这些问题提供了 Microsoft 解决方案。但是仅仅是因为 Microsoft 提供了这些工具吗?那为什么 JSF,JDO,NetBeans 不能成为 Java 技术 Blog 站点的主流声音呢?拿 ASP.NET 和 JSF 作一个细致的比较,它们并没有太多的不同,但 ASP.NET 和 Visual Studio 一起被广泛应用,而 JSF 却很少人用并且饱受嘲弄。我认为 Malcom 是对的,的确是思维方式的差异早就了这一切。
回过头来看看 Lucene.NET 的那群人吧:他们为什么关闭了开源的项目,他们为什么不再继续为这个很优秀的想法贡献他们的时间和精力呢?或许 .NET 社区对他们工作的反响,让他们无法继续维持下去了吧!使用 google 在 weblogs.asp.net 上搜索“lucene”只得到了 17 项结果,而在 jroller.com 得到了 2570 项结果。Lucene 已经存在很长时间了,但 Lucene.NET 的那群人们把东西包起来另起门户,其中一个原因可能就是:几乎没有人关注他们的工作:大家都在忙着研究 SQL Server 的全文检索,这才是 Microsoft 提供的解决方案(当然,需要为每个处理器花费成千的美元购买许可)。在 Java 世界,Lucene,Struts,Tomcat 之所以繁荣,也是因为为一个大的开源项目工作,给开发者带来了足够的威望。而当你投身于一个开源项目,却很少人注意时,沮丧的你也许也要寻找另外的动力。在 Lucene.NET 这个事例中,money 是他们的动力,所以他们关闭了项目,转而贩卖他们的个人版本和商业版本。他们或许能得到双倍的美元吧,但我打赌一年以内,不会有多少人谈论 seachblackbox.com 的。
那么我的观点是什么呢?是说 .NET 开发者很贪婪,不关心社区吗?不是这样的。我认为,这两个社区有不同的司机:.NET 开发者盯着 Microsoft,关心 Microsoft 提供的解决方案,如果他们在车窗外看到了好东西并拿来使用,Microsoft 可能会最终进入这个领域,并发布产品或者提出解决方案,这样,以前的工作就完全被否定了。Microsoft 是 .NET 社区的司机。Java 开发者们看了看 Sun 推出的产品和语言规范,扭头去开发他们自己的工具、框架、应用程序。Sun 推出的东西,Java 社区的开发者只有他们确实喜欢才会去使用。Struts 的门庭若市,与 JSF 的门庭冷落,印证了这一点。在 Java 社区,开发者自己是司机。
作者:Malcolm Davis 发表于:September 12, 2004
我最近受邀对 C#/.NET 和 Java/J2EE 做一个对比。一开始,我比较了它们的功能特性、产品、技术,然后我发现 C# 和 Java 的战场并不在这些表面特征方面,而是思维方式层面的竞争。
坐在办公电脑前,开发者脑袋中按两种相反的思维方式看问题:
1.接受桌面上已有的工具并以此为标准。
2.经常的搜索能够提高工作效率的机会。
接受主义与探寻主义是两个社区的主要思维方式差异。什么是对开发者有益的,接受主义者放弃了对工具的控制,接受经理和卖主的选择。探寻主义者搜索、寻找正好对他们工作有用的工具。两种思维方式都有其正面因素和反面因素。
工具的探寻(包括 IDE,组件,工具等)是正常的、预想的、首选的行为。作为开发者,应该寻找适当的途径,比如新的程序、自动生成重复的代码以及组件重用等途径,提高工作效率。可是,这对于一个 IT 公司来说,可能是一个不好的兆头。很多的 IT 公司限制随意安装新的软件,很多公司限制对外部网站访问,有的还限制对新闻组和 blog 站点的访问。(当然,很难想象有些 IT 公司甚至不允许访问 weblogs.java.net。)这些 IT 公司有很多适当的理由,比如对病毒、木马软件传播的担忧,以及由于缺少许可证而导致的法律问题,很多程序员并不清楚也并不关心引进新软件可能带来的这些后果。
四年前,我向一家 IT 公司引进了 Ant,Tomcat 和 JUnit,这些工具简化并加快了 web 编程、测试以及制造的过程,极大的提高了公司的生产效率。现在几乎每一个 Java 开发者都已经掌握了这些技术。
NAnt 和 NUnit 是仅有的一些开源的、对 Java 工具集的 .NET 移植。然而,Microsoft 并不是采纳这些已有方案、加以改进、并将它们集成到生产线中,而是自己重新创建了类似的产品 Visual Studio Team System。停下来想象一下,会不会有哪家 Java IDE 会声称“我们将不会支持 JUnit 或者 Ant,我们将推出我们自己的产品。”这简直是不可想象的!你现在知道 Java 和 .NET 之间的思维差异了吧:一个采纳社区已有的成熟工具,另一个则重新创造一套集成的方案。因为商业 IT 公司偏爱集成的解决方案,Microsoft Team System 给人感觉不错。可是,Team System 只是一个落后时代大约 5 年的产品。
商业世界的人们已经开始使用 Jakarta 项目上发布的 Ant 和 Tomcat。思维方式凸现了商业运作和 IT 开发的主要差异。如果商业软件能够遵守和 IT 开发相同的规则,它们将压缩竞争对手的空间,同时失去他们最好的开发人员。
由于 IT 公司需要以应用程序提供商(Application Service Provider, ASP)的等形式采用外部资源,Java 以及 Open Source 将成为 IT 的主流。Microsoft 的做法最终会伤害他们。ASP 的商业模式,将带领我们进入一个商业软件开发的新时代。Industrial strength development techniques, cutting edge technology, 以及经常性的探寻提高生产效率的机会,将成为标准,我们将看到“小鱼吃大鱼”的一幕,我们将看到 Java 吃掉 .NET 的午餐。
http://blog.joycode.com/percyboy/archive/2004/10/27/36746.aspx
钱学森的思维方式 钱学敏 |
人们的宇宙观、科学观与其思想方法、工作方法往往是一致的。由于钱学森具有正确的、现代化的科学观;所以他的思维能力非凡,至今仍十分敏捷、深邃、充满活力,常常有所创新,形成超前意识,其中奥秘很难捉摸和描绘,现仅就笔者的日常观察,罗列几项: 一、大跨度的思维方式 钱老的科学技术观的核心,就是要求他具有广博的知识,集智慧之大成,并能触类旁通,大跨度地思维,从各个方面去把握事物整体关系的“形象”,抓住了事物的机理,深入探索,找到创新与成功之路。他曾以自已的体验说:“跨度越大,创新程度也越大。而这里的障碍是人们习惯中的部门分割、分隔、打不通。大成智慧教我们总揽全局,洞察关系,所以能促使我们突破障碍,从而做到大跨度地触类旁通,完成创新。” 二、整体的思维方式 钱老总是习惯于把相互关联的事物作为一个完整的、有机的体系,进行系统的分析。正确区分部分与整体、微观与宏观、特殊与普遍、具体与抽象等的辩证关系,从整体中把握部分。他常说:“要从整体上考虑并解决问题。”否则,你只见树木不见森林,只拣些零碎的瓦片、木椽、窗格子,看不见整体结构和大厦,难以形成独具创见的智慧。 三、综合集成的思维方式 这是钱老系统的思维的一种表现形式。当他每日驰骋在古今中外浩瀚的知识海洋里的时候,他绝不是良莠不分,像一块巨大的海绵,无批判地兼收并蓄。不 知什么风浪使他锻炼出一种特别能辨别是非、真伪的能力,他极善于去伪存真,去其糟粕、取其精华,予以辩证地否定即扬弃,批判地综合集成一切有用的知识。因而,他总能在无边的知识海洋里,不断发现鲜花遍地 的绿洲。 四、逻辑思维与非逻辑思维 相结合的思维方式 客观世界万事万物丰富多彩又变化无穷,人们往往只是根据自己的需要,孤立地、仅从某一侧面去认识、把握事物的性质及其发展变化的规律,这就难免染上形而上学的色彩。钱学森深感认识片面性、死板、机械的危害。他以辩证唯物主义为指导,提出,“我们对事物的认识,最后目标是对其整体及内涵(包括质与量)都充分理解”。 五、灵感思维方式 钱学林很注意捕捉灵感思维,发挥灵感思维的神奇力量。他说,“如果把逻辑思维视为抽象思维,把非逻辑思维视为形象思维或直感,那么灵感思维就是顿 悟,它实际上是形象(直感)思维的特例。灵感的出现常常带给人们渴求已久的智慧之光。文艺工作者往往依靠这种非逻辑的思维方式,特别是。灵感"、去认识、去创作。殊不知单凭自己片面的经验、“跟着感觉走", 不去做艰苦细致的调查研究、予以科学的综合,"灵感" 这位可爱的“客人”是不会来拜访你的。 |
http://www.bjkp.gov.cn/kjrw/kp10494.htm