我為什么期待M#?
前段時間的報導“微軟將推新編程語言M#:系統編程級別的C#”, 第一眼看到并沒有當初看到F#的那一種不安,反而感到欣喜,業界一直存在“語言論”討論c#、java、vb、c/c++等語言的優勝略汰。當然那個時候 我也是討論大軍的其中之一,但這一次我看到M#更多的是驚喜是喜悅或者說是完全都是這一種感覺,下面我會給大家分享一下我為什么會如此期待M#。
一些補充(2014-1-8 9:05)
評論很多,看來很多人誤解了,希望大家能多去百度、bing、Google一下在進行評論,也是對自己的負責。
首先本文的M#跟這邊所指的m#不是一個東西http://www.msharp.co.uk/
原因1:M#還在研發中并沒有正式發布。
原因2:網頁中的m#重在支持asp.net,而微軟定義中的M#是一門編程語言當然不能局限于asp.net
原因3:微軟出的編程語言何時收費過?
M#到底會不會脫離.net framework
M#到底會不會脫離.net framework我也不清楚,只是猜測,一種美好的希望,如果連想都不能想是不是有點對不起社會?一個人沒有了希望沒有了理想還是一個人嗎?
M#脫離.net framework是很有可能的一件事
原因1:M#是Midori系統的編程語言
M#已經脫離了Windows,至于有沒有脫離NT內核暫時不做猜想,連Windows都脫離了為什么不能脫離.net framework?
摘抄:同時微軟目前也正在嘗試尋找Midori與Windows系統之間的兼容性,讓Midori的應用程序與Windows程序實現共存和互操作,并提供程序移植的方法。
原因2:M#將獲得更好的性能
除了小白大家都知道C#、VB.NET、F#、J#都會被編譯成IL丟給CLR去執行,如果M#能提升性能并且沒有脫離.NET Framework那么C#、VB.NET等其他語言也一樣能享受到這個待遇,既然如此為什么M#研發團隊會說將比C#獲得更好的性能?
原因3:M#從2008年開始研究
如果只是基于.net framework那么需要5年的時間來研究語法嗎?如果是這樣是不是太沒有效率了?
目前看到信息最多的一則報道:http://os.yesky.com/493/35700993.shtml
它是C#的補充
報導里面這么說:“它在C#的基礎上添加了系統編程特性,可用來構建各種類型的應用,尤其是云計算應用。”
用C#開發了三年,總覺得缺少了些什么,雖然C/S、B/S都能做但還是覺得少了些什么,期間有考慮過是否嘗試c/c++、雖然C#的語法我非常喜歡,是我接觸到編程語言中最喜歡的一個,特別是Linq。減少了大量的代碼。
那究竟是少了點什么呢?
x1:x2你不是做開發的么?幫我寫一個木馬我要能看到我女朋友的桌面。
x2:這個簡單,明天給你程序。
……第二天……
x2:x1我寫好了,你拿去你女朋友機器上直接運行就好了,但是操作系統必須是vista以上的,然后需要安裝.net framework 4.5。
x1:怎么看系統是不是vista?如果不是vista以上怎么辦?.net framework 4.5是個啥?我怎么安裝.net framework 4.5失敗呢?你寫的程序真糟糕。
x2:……
.net framework,我覺得.net framework是個負擔,其實更多時候我覺得是.net framework拖累的C#,為了兼顧VB.NET、F#、C#等語言.net framework實在是太臃腫了,如果C#增加了新特性那么.net framework就需要同時為VB.NET、F#等語言添加對應的實現,雖然中間有IL,但還是太臃腫了,需要同時改變多個編譯器,導致各個語言發現了 發展瓶頸,維護量大增的問題。
總而言之:C#(.net framework)能做的事情太少了。
更好的性能
“Joe Duffy表示,M#相對C#、Java等其他語言來說,它能在“性能”、“安全與生產力”兩方面會達到更好的平衡。”
這其實也牽扯到.net framework的問題,但這里部分地方不明示,大家心里明白就好了。
c#雖然擁有較好的性能但還是不夠,至少對于目前來說,雖然現有的CLR可以根據即時環境(詳情請看:“在.net中為什么第一次執行會慢?”)動態生成最優的本地碼,但對目前CLR對此的處理能力還是太弱了,導致了性能不夠理想,而這一點M#團隊已經注意到了,他們會尋找到一個平衡點(我琢磨著他們會把M#編譯成本地碼,而可以同時兼容現有的.NET類庫,只不過引用現有的.NET類庫需要安裝.net framework)。
開源
“同時,他也表示M#最終會開源,有可能就在令人充滿期待的2014年”
如果想把C#開發的程序遷移至Liunx、OSX上在以前幾乎是不可能的事 情,但現在雖然有了Mono可以做到還是會出現很多問題,這一點對于M#來說就無需擔心,因為它是開源的這邊雖然不能預測M#的開源級別與程度,但可以知 道的是至少比現在容易,到那時候我們就可以少了一項從Windows轉向Liunx、OSX的障礙了(不知道為什么最近想從Windows轉向Liunx Or OSX)。
M#已經研究了數年
據報道,微軟研究M#以長達4~5年(多個報導時間不一樣,期待有人能給出正確答案),為其數年的編程語言值得期待。
它是微軟的
微軟雖然有很多的罵名,但不得不說他為開發者所做的,雖然現在的生態環境還遠不如java,但他為開發人員帶來的便利是極大的,Visual Studio、IIS、SQL Server等都具有良好的可視化界面及輔助工具,這些都能極大的減少開發者的時間。
寫在最后
我不推崇任何技術,我只按需所取,我不黑微軟也不捧微軟,我只是說出我的想法,我想要的編碼環境。