微軟研究院正在開發全新程序語言Bosque,以簡單易懂爲要求,下降程序開發過程的意外複雜度(Accidental Complexity),還支持一系列新的編譯程序與開發工具,最終目的是要在提升開發人員生產力的同時,又能讓程序擁有良好的質量。Bosque做者爲微軟首席研究軟件設計工程師Mark Marron,其最近主要的工做還有開發時間旅行除錯工具。機器學習
Mark Marron發表的論文提到,1970年代結構化程序語言和抽象數據類別,爲程序語言開發模型帶來了一波改變,讓開發者不須要這麼在乎底層基礎結構,把心力放在功能的實現上,所以開發人員的想法更容易實現,程序也更不容易出錯,而如今Mark Marron順着這個開發模型的想法,進一步提高開發體驗,發表了使用規範化程序開發方法的程序語言Bosque。ide
Bosque參考了TypeScript的語法,並綜合了語意機器學習和Node/JavaScript,Mark Marron提到,因爲在過去結構化程序開發模型中,流程控制是由循環、條件和子程序所組成,而Mark Marron列出了循環、參照相等和可變狀態等五個形成程序代碼意外複雜度的來源,開發人員可能爲了解決問題,而又爲本身創造了更復雜的問題。工具
Bosque去除了這些可能產生意外複雜度的概念,以循環(下圖左)來講,Bosque再也不使用for、while和do while等循環,使用稱爲Functors(下圖右)的概念,能夠完成相同的工做,可是卻能有效下降程序複雜度。Functors是一系列高階迭代處理結構,Mark Marron表示,開發人員不須要重複撰寫相同循環的樣板,可以消除一系列像是邊界算數類的錯誤,並讓開發者使用描述性命名Functors,而非一組共享循環模式。學習
Mark Marron提到,Bosque消除現有結構化程序開發模型中的主要錯誤來源,讓程序代碼更加容易理解與修改,發展出規範化程序開發方法(Regularized Programming),而論文證實了規範化程序開發方法能夠直接提高軟件質量以及開發人員生產力。開發工具
目前Mark Marron將Bosque相關程序代碼開源於GitHub,以利學術界與開發sbf勝博社羣合做,但這個項目目前仍在早期階段,不僅存在錯誤且功能有限,開發者不該該用於正式的生產環境。spa