.NET社區面臨的問題及其對策
如今的.NET社區,特別是國內的.NET社區面臨諸多問題,本文將一一例舉。
很多人誤認為“.NET門檻低”
首先我來解釋下門檻到底是什么意思,網上找了個標準解釋,門檻是門框下端的橫木條、石條或金屬條。門檻高低本意是說要進入這個門需要多大力氣,引申 意是說進入一個行業、學會一門技能的難度。你可以說.NET是個技能,.NET是個平臺,那作為一個技能、一個平臺,.NET好學嗎?說實話,我一開始覺 得.NET不就是一個幾門語言(C#, VB.NET, J#)都能隨便用的玩意嗎?但越學越發覺很多東西不是那么回事,越學越覺得很多東西其實并不懂,就是這種感覺,所以呢,我覺得門檻并不低。我就沒搞懂,為 啥這么多人覺得.NET入門簡單了,你們說的入門到底指啥?會寫console?會寫winForm?會寫個排序?我對入門的理解是對大部分需求場景能夠 經過少量時間的研究學習后進行處理,基本不需要別人幫助,如果用HR的話來說是熟悉,談不上精通,但絕對不是了解、知道,那種寫個hello world在我看來,連知道都談不上,這誰不會寫?!更何況.NET基本上2年就有一次大更新,當我們還沉浸在.NET 2.0的時候,微軟已經出了3.0, 4.0,大量的概念引入,這么多東西你都知道個1、2、3了?我不信。怎么沒見中國有幾個大牛寫出標志性的.NET開源應用呢?當然啦我不想一竿子打死一 批人,有還是有的,但確實比較少,比如Teddy Ma的NBear(當年可是很火的ORM哦~)。
同時我要澄清下,我說.NET門檻不低,不等于我說其他語言門檻低,或者.NET門檻很高,我覺得語言的門檻都差不多,希望大家不要誤解,語言這東 西學到后面會發覺不懂的越來越多,這叫越學越覺得自己無知,入門沒個5成功力請不要說入門。其實門檻高一點并非壞事,對自己嚴要求沒錯,也可以適當提高自 己的競爭力,否則你和那些沒入門的有何區別?也請張子陽不要曲解我的意思,更不要走極端說要和JR水平一樣,這話實在說的搞笑了點。國外牛人還是很多的, 只是你我都攀不上,好吧,這有點扯遠了!
解決方案:重新評估你自己的.NET水平,當然不一定要糾結入門不入門,但一定要清楚自己知道了哪些東西,不知道哪些東西,該學習哪些東西。.NET作為一個平臺,絕對是博大精深的。
行業縱身不夠,很多行業都被其他語言霸占
這個問題我想大家經常看職位描述(JD)就明白了,基本上.NET的職位要比Java職位少掉一半,很多行業如電商、物流、能源、金融基本都是 Java的天下,那.NET在干嘛呢?真的是少數公司在用,很多公司即使用.NET也是輔助,比如測試代碼用.NET寫,比如用.NET做前端,后端用 Java或者C++(比如Morgan Stanley用WPF做前端,后端據說是C++)(老趙,關于大摩,你比較有發言權,可以適當介紹下)我群里有兄弟說以前京東是用.NET的,現在改 php了,看樣子又是一個失敗案例。
解決方案:暫無,這靠我們這種草根程序員基本是不可能改變的,需要巨頭來帶動需求并進行市場營銷,這一點微軟一 直做得一般,希望微軟能夠想辦法改變這種局面。當然啦,架構師在公司內部也可以順理成章的刮起一股.NET風,當然要選擇適當的時機,切不可硬上,切忌。 搞不好,.NET沒轉過去,把客戶搞丟了,那就搞大了。我們公司就有個有趣的案例,本來都轉Java了,結果我們Team的系統當年Java的版本轉了兩 次,上去就掛了,結果客戶抱怨很嚴重,說得難聽點就是你再轉我就跟你合作了,從此以后再沒有人敢提轉Java,對于轉.NET這也是一樣的道理,客戶至 上。
標志性旗艦網站甚少
當年最火的MySpace倒是真用ASP.NET寫的,但很遺憾自從它沒落以后就很少聽到日訪問量***的.NET網站應用了,最近的應用中我唯一 能想出來的就是Stackoverflow,這網站大家都懂的,訪問量絕對是一線網站水準,全部是.NET代碼實現。但這種網站數量實在少,以至于很多廠 商談.NET色變,這也進一步加深了對.NET的誤解。如今的.NET給人們的印象更多是中小型網站速成神器,而不是大型網站***,而中小型網站生出來 快,死起來也快,很多公司也許你聽還沒聽說過,它已經死掉了。微軟倒確實有BizSpark計劃,就是說初創企業可以免費用微軟方案3年,只要年收入低于 100萬美元,效果馬馬虎虎吧,可能是因為這些公司太小以至于不為人所知。
解決方案:暫無,期待開源牛人或標志性企業的介入,如果你知道一些標志性的用.NET的網站(除了微軟官網),請寫在回復中,也許是我孤陋寡聞。
.NET程序員的過度自嘲
很多.NET程序員自己也說.NET這個不如,那個不行,以至于社區信心更加不足。這會在公司里創造一種氛圍,那就是做.NET的人自己信心都不 足,如果你的公司有Java程序員,他們會引用你的話,“誰誰誰說.NET這個不行”,也許你無意中的一席話會成為公司決策層的參考。
自嘲的另一個原因來自于很多.NET程序員覺得自己工資比java程序員低,但事實真的如此嗎?工資這玩意其實和個人資歷、公司、地域三個因素都有 很大關系,即使在同一家公司,同一個團隊,如果那個人比你年長3歲以上,即使你們做同樣的事,他比你拿得多也是很正常的,所以比要合理的比,要拿同等參照 物,當然啦,這其中肯定存在不公平,也許你們平時做的事真的是一模一樣的,但這社會就是這么運轉的,和你用啥語言沒有太直接的關系。最近公司薪酬體系還流 行一種現象——很多新進員工拿的比老員工多很多,撇開能力不談,這是近幾年中國人力資本提升的表現,HR也很清楚,不提高薪酬,招不到人,但對于老員工, 多數采取的是默許政策,即你不要求我也不會給你加,所以不公平始終存在,這也是為啥HR要求員工不要相互問工資,一問容易問出問題,人比人氣死人,哈哈。
Java程序員之所以工資高多數是因為他所在的行業很不錯,效益好,比如金融、能源,所以高也正常。我平時也做兼職獵頭,所以對薪資很清楚,其實做 到資深級別都差不多,不管是.NET、Java、C++、php程序員,.NET程序員混的好的也不少。工資這玩意到***拼的是資歷、運氣還有公司效益。 大公司看上去工資高,但加的少;小公司看似工資低,但運氣好得到老板賞識得到重用的話,絕對比大公司的小領導混的好。
解決方案:適當注意自己的言行,多宣傳.NET好在哪里,而不是說.NET不好在哪里,這就好像你去推銷一樣東 西,你老是說這樣東西不好,誰會買呢?有的時候我們甚至可以利用面試機會去宣傳.NET,比如說有的公司他們即招Java也招.NET,你就可以適當質疑 為什么不都用.NET,因為使用.NET可以降低ROI(投資回報率),這是綜合成本考慮,倒不是說.NET的人便宜,而是說如果你雇了個很貴的.NET 程序員,后期維護成本也會比Java低,當然前提是這哥們寫的.NET代碼給力,有一定的文檔和注釋、架構方面考慮完善,便于他人理解。
第三方開源支持甚少
Java社區的開源支持絕對是典范中的典范,基本上只要你想得到的應用,總有對應的Java項目,比如最近很火的數據挖掘,Java社區有大量現成 的解決方案,比如Hadoop, stanfordnlp等,反觀.NET陣營,基本是全軍覆沒,你甚至找不出一個像樣的數據挖掘輔助組件,有人說盤古分詞,是的,它算一個,但它的作用是 非常前端的,僅是數據挖掘的***步,接下來的聚類、情感分析之類的.NET沒有任何支持庫可用。所以你去看現在招數據挖掘職位只有三種語言,Java, C++, Python,沒有.NET啥事。.NET社區并不缺類庫的使用者,缺的是類庫的貢獻者,也許是微軟自己對開源社區支持不足的關系,也間接導致了他的客戶 們(微軟陣營的程序員)對開源不是很熱衷,盡管近幾年微軟的態度有了很大程度改善,但這種陰霾還在。
解決方案:.NET社區其實并不小,看看C#的語言排行就知道了,大家齊心協力出一些庫,即使有些是個人英雄主 義,也行啊。這應了一句話“庫到用時方恨少”,為何我們不能DIY出一些好庫,別把好東西老窩著,說啥知識產權,知識產權大棒是大企業抑制競爭的手段,而 不是個人程序員應該把玩的東西。
版權聲明:本文原創發表于 博客園,作者為Tony Qu, 未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則視為侵權。
原文鏈接:http://www.cnblogs.com/tonyqus/archive/2012/11/28/dotnet_community_problems.html