曾幾何時,天真的認為mono將成為下一個Java,前途無限光明,回頭想想真的是相當幼稚。
1.微軟不會讓mono發展太好
作為CLR和C#以及.net Framework的另一個實現,mono主要還是用於非Windows平台。如果mono真的發展成熟,那麼非Windows平台上的開發將會相當順暢,這也會極大地推動.net技術的廣泛使用,但是這給微軟會帶來什麼呢,僅僅是名聲,而沒有任何實際的利益。而且,這還會推動非Windows平台的普及,而這恰恰是從根本上動搖Windows。一門技術的發展方向最重要的還是受制於利益的驅動,所以在微軟看來,mono玩玩還行,要想大發展是不會容忍的。
2.mono自身發展受專利限制
mono作為.net的另一個實現,存在很多受制於他人的專利問題,一旦微軟發難,必將置mono於死地。
3.mono不受開源社區歡迎
java開源後已經是開源社區最廣泛的企業開發平台,開發人員沒有必要再學一套類似的技術。java已經積累了大量的架構、庫、項目,不可能重新用mono開發。再者,但從技術先進性而言,mono相對於java也沒有多大優勢。
既然mono沒有任何發展的有利因素,所以mono的死亡是必然的,但對於開發人員而言,學習mono有利於進一步理解.net,對於提高編程能力有莫大的好處,但是別指望真的以此作為平台來發展。
看看現在的開發方向吧,BS和移動開發如火如荼,作為html5、flash、android、iphone等前端開發技術競爭激烈,而處於核心地位的伺服器端開發技術則相對穩定於java和.net。儘管php也是極其廣泛,但是大型的企業級應用伺服器端主要還是java和.net。.net統戰案頭和伺服器端開發,一套技術吃遍天下,但是必須是服務於Windows平台。Java在案頭開發領域應用不多,主要還是伺服器端,但是Java真正做到了跨平台,在Windows和Linux上確實都運行穩定,表現相差不大。
面對如此繁雜的技術,開發人員如何選擇至關重要,因為一個人的精力畢竟有限,不可能精通所有技術。
(1)對於應用開發人員
首先要選擇的是前端還是伺服器端,如果是前端,再選擇是案頭還是Browser,個人覺得案頭開發領域越來越窄,儘可能選擇Browser,那麼html5和Javascript是不二選擇了。如果是伺服器端,Java和.net選擇一個吧。
(2)對於系統開發人員
C/C++是不二選擇。
(3)對於系統營運者
指令碼語言是不二選擇。
(4)對於所有開發人員
資料結構和設計模式是相同的。
(5)對於專案經理
關注客戶的商務邏輯越多,經驗越多,語言不太重要了。