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