[ZT] C# vs. Java:相反的思維方式 (譯文)

轉自:http://blog.joycode.com/percyboy/archive/2004/10/27/36746.aspx 

C# vs. Java:相反的思維方式 (譯文)
上一週看到這兩篇文章,一直時間不充裕,這兩天把它們譯出,給大家做個參考。(本文僅爲了傳播更多的信息而提供,並不表示本人贊同其觀點和看法。另:翻譯可能有瑕疵,可以參照原文指正。謝謝!)



C# vs. Java:相反的思維方式(Part II)

作者: 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 社區,開發者自己是司機。



C# vs. 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 的午餐。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章