回覆列表
-
1 # 武漢朝夕教育科技
-
2 # 覆水難收77313204
真的低,因為.net在語法層面隱藏的細節更多,並且有大量函數語言程式設計的東西在裡面。比如linq,比如擴充套件方法。
舉個最簡單的例子,.net判斷一個檔案某一行有沒有class這個單詞,只需要new file(path).readalllines.any(x=>x.indexof("class")>=0)就搞定了,java你還要考慮該用那個reader讀檔案,接哪個reader能按行。然後要不然用java8的stream,要不然就只能自己迴圈。stream也明顯沒有linq方便。這也是kotlin之類的語言能受歡迎的最大原因。
手機打的,程式碼的格式啥的就不考慮了
“JAVA更難學習內容更多”絕對是一個彌天大謊!正好相反,.NET要學的東西其實遠遠多於JAVA,而且難度只在JAVA之上不在之下!如果決定搞.NET,那就要準備好要比JAVA吃更多的苦!
由於國內.NET應用的侷限,諸如在美國大量使用的.NET技術體系中的WCF,WPF,LINQ, Entity framwork,SQL SERVER SSRS SSIS等技術在國內幾乎不用或者用得很少,再加上.NET上手快, 很多國內的人有了錯誤的認識,以為JAVA是高大上,.NET是小兒科,這簡直是天大的誤會!等你來了美國,上http://pluralsight.com和amazon上隨便看看,無論書籍還是教學影片資料量,.NET幾乎是JAVA的5-10倍!再看看http://dice.com對.NET程式設計師和JAVA程式設計師要求上的差別,JAVA招聘需要的技能種類明顯少於.NET。做JAVA的可以對前端就不懂也有大量職位(如CORE JAVA)。但.NET程式設計師對前端的要求就明顯高過JAVA,很多要求前後端都要精通的。連桌面開發WPF軟體的用人公司也變態地要求前端精通,,結果是不懂甚至不精通前端幾乎不能找.NET的工作,但JAVA就可以!不要以為JAVA要的技能專案要求少就是更難掌握和精通了,.NET一樣可以很難!光一本WCF的書就可以一千多頁,隨便一個WPF這種技術難度也遠在JAVA SSH之上。我深入學習過兩種語言,負責任地說,C#可以說難度和知識點廣度上絕對是超過JAVA SE的。你去微軟MSDN上查一下API,複雜程式遠遠超過JAVA SE的API文件。光是這些錯綜複雜的內容體系是如何編排的,這個知識網的結構是怎麼在微軟網站上組織呈現出來的都要搞很久才能真正弄清楚,更不要說知識本身了。再來個例子,看看JAVA的SERVLET和JSP網路技術,那種單純性,簡單性和浩瀚無垠的http://ASP.NET體系去比,要學習的內容無論廣度很深度都要差太多。所以為什麼國外http://ASP.NET的書動輒超過1000頁,但大部分JSP SERVLET的書都是些5-6年前甚至十幾年前出的還比http://ASP.NET的薄很多?
.NET上手快是因為有一些自動系統自己可以做出來的東西,比如拖控制元件。但是如果僅僅說有拖控制元件就斷定這個更簡單那就太膚淺了!後面還有很多可以程式設計師自己手工做的呢!你換個思路,用幾句不精確的話來描述.NET和JAVA之間的異同:JAVA不能拖控制元件,只能自己寫程式;而.NET不但能拖控制元件,還可以自己寫程式,而往往工作中拖控制元件自動完成的和自己寫程式都要用到。而拖控制元件並不是看小說那麼簡單也要花巨量的精力學習的。你想想,既要拖控制元件又要手寫是不是比只要手寫還多一個拖控制元件的內容?怎麼反而會更簡單呢?既然多了一項拖控制元件的任務那應該是內容更多了更難了,而不是更少了更簡單了!!
JAVA技術體系更新非常慢,學完C#再去看JAVA SE感覺象小兒科,很多JAVA 8的最新特性也許多少年前C#就有了。象SERVLET,JSP,EJB,SSH等更新的速度和.NET體系更新速度比簡直象蝸牛。為什麼5年6年前的JAVA 技術的教學影片現在還被掛在傳智播客,尚學堂和動力節點的培訓班網站上,還沒有淘汰呢!想想如果換了.NET,可能嗎?!
JAVA技術是開源的,可以看原始碼透析工作原理,但.NET沒有全開源,沒有原始碼的話要真正弄弄背後原理是很難的。如http://ASP.NET的原理就遠遠比JSP等深奧很多。