.NET門檻低?——沒文化真可怕
今天又看到某首頁博文里出現了“.NET門檻低”的字眼,我真有點想抽這位博主,你這么多年.NET大概白學了!白用了!我建議你趕緊轉java陣營吧,.NET不適合你,真的!如果你不改變這個觀念,請你以后出去別說自己是.NET程序員!
這位博主的觀點很有意思,用.NET就不用懂算法、不用懂數據結構,不用懂很多東西,那我只能說你可能業務系統做多了,還是很初級的業務系統,如果這么多年你連一個.net算法都沒寫過,一個數據結構都沒寫過,真的很難想象你是怎么過來的?!就算初級系統,數據結構你總接觸過吧。我來給你舉幾個很實際的例子,排程系統中你能用現有.NET基本類庫實現所有功能嗎?當然要自己寫算法!計算機可沒達到有這么高智能的地步,否則我們這種程序員肯定都要失業。運輸系統中,路線優化能用基本.NET類庫實現所有功能?至少要寫個最短路徑算法吧,微軟可沒提供現成的玩意。
博主還犯了個很低級的錯誤——把編程技能和學歷掛鉤,他說“做.NET不需要你科班出身”,你跟我說說,用哪種語言需要科班出身?大專生就寫不出好程序了?也許你大學里編程學的不錯,但我可以很明確的告訴你,這只能說明你課聽得不錯,但不能說明你自學能力強,呵呵。樓主自認為自己寫過手持設備應用,實現過基本數據結構就很了不起了,說句實話,這玩意都是大學基礎課里的作業,就算是大專生也是有數據結構這門課的。
批完某人,我來說說.NET門檻低這個觀點的由來,這個觀點很大程度上來自于java陣營,很多java程序員自命清高,覺得不拖控件簡直是門絕學,呵呵,所以沒事就拿.NET winForm開發中用的最爽的功能開涮,說我們這幫.Net程序員只會拖控件,行吧,那我問你個問題,你Eclipse寫桌面應用不拖控件?就算你動態生成,你用起來舒服嗎?明明有方便的東西不用,腦子進水了。我再問你個問題,拖控件能解決一切嗎?如果性能出了問題,你拖個控件就能解決?如果內存溢出了,你拖個控件就能解決?寫多線程,有控件能直接用?哎,沒文化真可怕!
其實.NET和Java從語言本身來講有太多的相似性,他們都有虛擬機、都有自己的匯編語言、都是高級語言,都存在內存垃圾收集方面的缺陷,你要說他們本身有啥區別,我還真說不上來。在我看來,Java比.NET更有優勢的地方在于大量的第三方開源組件和項目,還有架構方面的框架(如Struts, Spring, Hibernate等),這一點.NET非常吃虧,很多東西都得自己來實現,或者通過COM調用。
舉個很現實的例子,我們公司有Java項目,有.NET項目,前段時間要做XSS掃描,為了統一用上AntiSamy,我可是硬著頭皮改了不少AntiSamy.NET的源代碼,最讓我胸悶的是AntiSamy官網明確寫AntiSamy.NET功能很有限,很多東西無法實現,就連CSS掃描都和java不一樣,因為java版本的css掃描用了另外一個java組件,但.net完全沒有對應組件。說實話,java版的antiSamy很好用,也很方便,這事是非常能說明問題的一個真實案例,說明.NET程序員在實現一些高級功能時由于第三方組件的缺失,不得不自己去實現大部分功能。所以么,誰說.NET門檻低真的只能說明他沒見過世面。
很多時候,做一件事是靠信仰支撐,如果你連信仰都沒有,那你還不如放棄這件事。我的信仰很簡單,把.NET發揚光大,所以我現在大部分的研究項目都是基于.NET的,因為我一直堅信.NET是門很不錯的語言,但它的門檻完全取決于你用它來做什么,而不是它本身門檻低。例如,你用.NET來寫人工智能算法,你說這門檻算高嗎?
歡迎大家在回復中給出自己的親身體驗,一起做道證明題:.NET的門檻并不低。
原文鏈接:http://www.cnblogs.com/tonyqus/archive/2012/11/24/2786595.html