歡迎光臨
每天分享高質量文章

.NET和Java之爭

這幾天連續有多篇文章詆毀.NET,這類文章我十幾年前就看得多了,只不過十幾年前是C和C++之爭,C++和Java之爭。我從來不理這類文章,因為這類口水戰並沒有什麼實際意義。

然而接連收到多位粉絲私聊說,主席,你應該寫點什麼反擊了。我才醒悟過來,為了自己,我可以不用理會這些文章,但是為了社群,我必須寫點東西。

首先,必須宣告一點,我在《廣州.NET微軟技術俱樂部與其他技術群的區別》說得很清楚,“本群堅決禁止討論“JAVA和.NET哪個好”、“NET有沒有前途”等問題,請把討論這些問題的時間用來研究如何提高自身.NET技術水平上。”

所以,這篇文章將會是唯一一次也是最後一次討論.NET和Java之爭。

然後,這篇文章的閱讀物件是有上進心、好學但是又在迷茫中的.NET粉絲。

這些粉絲的心態我懂,我讀書的時候,身邊很多人跟我講,讀書沒有用,讀書並不能賺大錢,很多賺大錢的人都是小學畢業。

那時候我的心態就和這些粉絲心態是一樣的。

幸虧後來家族裡的長輩點醒我,他只說了四點:

  1. 福布斯500富豪榜裡面,絕大部分都是大學畢業,所以讀書無用論這種論點根本經不起推敲。純粹是這些人為自己辯護找的藉口。
  2. 即使是小學未畢業的愛迪生,和因為貧窮只讀了三年書的林肯,大家尊敬他們並不是因為他們讀書少,而是因為他們的成就和貢獻,並且他們都很尊敬文化人,所以讀書無用論是本末倒置。
  3. 建立了黨和國家財政體系(包括長徵和解放軍後勤、建立商務部和廣交會)的葉季壯將軍,就是個文化人,新中國暫時還沒有哪個小學文化的富豪創造的財富比他創造的財富多,所以讀書無用論和讀書不能致富就是扯淡。
  4. 讀書無用論是使用小學課文《田忌賽馬》裡的手法,用小學畢業裡的上等馬去和大學畢業裡的下等馬去比,那當然是小學畢業裡的上等馬勝出啦,正確的比法應該是用小學畢業裡的上等馬去和大學畢業裡的上等馬去比。我當時已經是高中文化了,怎麼還會中這種這麼低階的招數呢?

因此我走出了迷茫,最終考上了大學。十年之後,當我在矽谷上空開飛機的時候,我才發現當年相信讀書無用論的同學們不但沒開過飛機,甚至連汽車都沒有開過(當然現在又過了十年,中國經濟發展起來了,絕大部分同學都開上汽車了)。

所以這些迷茫中的.NET粉絲的心態我很懂,不就是當年讀書無用論的翻版嘛。

所以詆毀.NET的文章我不關心,我只關心我們這些會被這些文章坑害的粉絲們。我也說幾點吧:

  1. 我2003年就開始用Java裡的J2ME做出一個西門子M55手機程式。目前我同時使用Java、.NET(C#)、Python、Typescript四種語言和技術。所以我並沒有說Java不好,我只是認為.NET也不差。
  2. 這些詆毀.NET文章的作者,並沒有做過什麼實際上的貢獻(比如參與開源專案或者寫技術文章),和鼓吹讀書無用論的是同一類人,純粹是這些人為自己辯護找的藉口。
  3. 這些詆毀.NET文章的手法,是使用小學課文《田忌賽馬》裡的手法,用Java裡的上等馬去和.NET裡的下等馬去比,那當然是Java勝出啦,嗯,這些人好像並不知道.NET Core這匹.NET體系裡的上等馬吧。絕大部分粉絲的文化程度都比小學文化高多了,怎麼還會中這種這麼低階的招數呢?
  4. 目前流行的網遊,比如王者榮耀,是使用.NET平臺,這說明瞭.NET並不差。
  5. 最近我在整理葉季壯將軍的史料過程中,發現在OCR這一塊,Java就比不上.NET。在github搜OCR,按照Most Stars排序,你會發現第一頁有兩個C#的OCR庫,而沒有Java的OCR庫。
  6. 當然在某些領域,Java是比.NET強,比如工作流這一塊,我自己目前就是用Java的Activiti, 但是Java是可以和.NET共存的啊,特別是在微服務的年代,早就已經是語言無關了。多種語言和框架都可以共存。
  7. 這些詆毀.NET文章沒有舉出任何一個.NET不好的實體,而我在前面就舉了三個實體,真的是造謠張張嘴,闢謠跑斷腿啊。

最後單獨說一下大家最關心的問題,就是Java程式員工資比.NET程式員高。

這種手法比小學課文《田忌賽馬》裡的手法高明點,然而很容易識破啊。

這種手法的另一個例子是:我和中國前五個富人的財富一平均,我也是億萬富翁。

See! 這種手法很清晰了吧,“Java程式員工資比.NET程式員高”沒有任何意義,重點是“你做Java程式員工資會不會比做.NET程式員工資高”,這才有討論的意義。

我的經驗告訴我:

  1. .NET轉Java是需要付出成本的,如果你不會.NET裡的IOC、設計樣式、DDD、TDD、BDD,那麼你轉Java,你一樣還是需要付出海量的時間去學會這些東西。
  2. 只學會一種語言而不學它的框架和庫是什麼都乾不了的。光學Java是沒有生產力的,你至少要學習SSM三大框架,做點有規模的專案還要學Spring Security, Activiti, Drools等等。這都是要花不少時間的,同樣的時間用來學好.NET Core提高生產力豈非更好?
  3. 你付出成本轉成Java之後,收益不一定比原來.NET的高。因為除了公司內部轉Java保證了你的工資待遇外,換一個公司求職你就變成了一個0年工作經驗的Java新手,這在一些非演演算法取勝的公司裡是很吃虧的,最終工資未必比你原來.NET的薪水高,畢竟你在.NET是按有經驗的工資去付的。目前能夠成功從.NET轉JAVA的成功案例大部分都是公司內部轉,保證了你的工資待遇。
  4. .NET Core正在崛起,微軟重回市值第一,你花了時間轉Java之後會不會錯過這個時機呢?
  5. 不管你是用Java還是用.NET,只要能把事情做好了,就能拿高工資,如果老闆不肯給你高工資,那你就換一家公司。
  6. 要透過把事情做好來拿到高工資,你很可能需要同時使用.NET和Java, 比如現在的我,工作流用Java,前端用TypeScript,資料採集和分析用Python,其他用C#/.NET Core.
  7. 如果抱著.NET垃圾的想法,那麼當專案需要使用OCR、網遊或者其他.NET擅長領域的時候,你因為不喜歡.NET而不去用.NET,從而沒有把事情做好,那你可能會被降工資。

這個世界上,大機率是做實事的人會等到尊重,比如王安電腦的王安,當年排名全球第5富(目前還沒有其他亞洲人能做到這點),美國人並沒有因為他是華人而鄙視和打壓他,反而很尊重他,被選為全美最傑出的12位移民之一,接受了里根總統頒發的“總統自由獎章”。王安賣電腦就沒有打什麼民族牌、愛國牌。所以還是少點空談,多乾點實事吧。

寫這篇文章總計花費58分鐘,這個時間比我做”.NET俱樂部聯盟官網”裡一個PBI和寫“ABP大型專案實戰(1) – 目錄”這篇技術文章耗時還多。所以這篇文章將會是唯一一次也是最後一次討論.NET和Java之爭,有多餘的空閑時間還是用來做點實事吧。

我依舊堅持群規:“本群堅決禁止討論“JAVA和.NET哪個好”、“NET有沒有前途”等問題,請把討論這些問題的時間用來研究如何提高自身.NET技術水平上。誰先挑起這個話題被警告三次後就請出群,目前已經有多位人士被請出群了,請合作,謝謝。”

原文地址:https://www.cnblogs.com/adalovelacer/p/dotnet-vs-java.html

贊(0)

分享創造快樂