對NET平台的編程語言的當前趨勢進行分析之後幾件事情慢慢浮出水面在PDC召開期間微軟逐步公開了圍繞NET和編程語言的很多想法據此我們可以饒有興趣地對NET的未來預測一番
NET平台以運行在通用語言運行時(Common Language RuntimeCLR)上的C#和VBNET作為開端CLR是通用語言架構(Common Language InfrastructureCLI)規范的一種實現任何希望創建新語言的人都能實現CLI規范它允許開發人員從大量的編程語言中選擇一種年月微軟發布了構建於CLR之上的動態語言運行時(Dynamic Language RuntimeDLR)的版本它使語言開發人員也可以為NET平台創建動態語言
一些語言是由微軟開發和維護比如C#VBNET和F#但是大部分語言都是由社區創建的開源項目一些比較知名的語言有IronPythonIronRuby(兩者都是動態的)和Boo(靜態的)前面兩個語言作為開源項目由微軟積極推動它們是基於兩個現存語言Python和Ruby的Boo從年就開始出現了由Rodrigo B De Oliveira創建現在依舊在積極地開發當中你梢栽赪ikipedia上找到一個包含了更多NET語言的完整列表
要掌握NET語言的走向首當其沖要了解的就是Anders Hejlsberg(C#的創造者)如何談論C#的未來的在之前的幾個C#版本中微軟關注了托管代碼(C# )泛型(C# )和語言集成查詢(LINQ)(C# )而大家期盼的將伴隨Visual Studio 而來的C# 主要關注之處則是動態編程在他的PDC演講中Anders談論了當前語言的趨勢
我認為發展趨勢涉及到三個主要方面第一個就是我們所看到的更加聲明式的編程風格下一個就是我們過去幾年在動態編程語言上所看到的某種形式的復蘇以及它對我們的影響還有就是多核所帶來的變化——如果你有這方面需要的話
……
對我而言這些趨勢裡最感興趣的就是——所有這些趨勢另外我也認為經典的編程語言分類法正在被打破之前我們習慣上把語言歸為面向對象函數式動態的或結構化而現在我們正在逐漸看到各種語言都從其他語言那裡借鑒很多思想我確實認為從某種意義上說新編程范例將是一種多編程范例
這些解釋了為什麼C#會具有聲明式編程(LINQ)和動態編程(在C# 中的dynamic關鍵字)的元素
在稍早對Anders和Guy Steele的關於並發和語言設計的訪談裡Anders指出
我們雖已擁有了名為C#的編程語言但並發處理已經來臨所以我們需要考慮這意味著什麼我認為在C# 和LINQ上的大量工作和並發問題已經非常相關了類似Lambda表達式和我們已經添加進來的一些特性可以讓我們更好地構建這種類型的API
……
當然我們也缺乏一些語言內部的機制來控制或標識這些副作用對於純函數和不可變數據的形式化應該有更好的語言支持另外對於編譯器需要確定一個對象是否要暴露給任何人這樣的情況也應該提供一些可能的支持來以進行某種形式隔離只要對象不暴露給任何人我們在本地變量中處理它就能保證其變化時是真正安全的
微軟已經開展了一個和並發相關的項目叫做並行計算初始計劃S Somasegar開發部門的高級副總裁最近在一個Q&A論文中談到了在Visual Studio 中期望包含的東西
它將包含一些新的NET Framework函數庫比如任務並行函數庫(Task Parallel LibraryTPL)和並行LINQ(PLINQ)以及並行模式函數庫(Parallel Pattern LibraryPPL)和使用C++開發原生應用程序時可用的並發運行時(Concurrency Runtime)及調試工具微軟也通過在Windows Communication Foundation(WCF)和Windows Workflow Foundation(WF)中額外添加一些新的功能來持續地對NET Framework進行投入
這個項目自然成為微軟獲取反饋的一個途徑來了解如何在NET編程語言當中進行改變以輕易地支持並發莫爾定律依舊適用於晶體管密度但對於CPU速度(GHz) 已經不適用了所以需要轉向並行計算而不是停止前進當然微軟也明白使用一致的基礎功能來解決和其他語言共同工作的問題具有很大的挑戰所以下一步要著力解決的就是類似C#這樣的語言
在NET平台上談論編程語言往往會提到VBNET vs C#的主題Anders談到了C#和VBNET之間共同進化(CoEvolution)的問題
……當我們盡力在某個之中開發出一些不同的特性之時其他的團隊也打算實現這個東西現實是促進這些語言發展的正確方法便是共同進化
可見並發處理將成為下一個重要的事情是無容置疑的動態編程將在C# 中出現不過人們還是希望未來的版本能夠包含更多的特性VBNET被承諾和C#共同進化以實現兩個語言具有不同的語法但可以給出同樣的輸出結果隨著和Visual Studio 一起發布的DLR的出現隨著IronPython和IronRuby的可用性的提升動態語言將在未來幾年裡成為主流
From:http://tw.wingwit.com/Article/program/net/201311/15332.html