微軟 (Microsoft)正開發沒有迴圈的程式語言 Bosque

微軟 (Microsoft)正開發沒有迴圈的程式語言 Bosque

News from: iThome & Microsoft Research Web Site.

全新程式語言Bosque作者認為,程式語言中的迴圈、參照相等和可變狀態等是造成意外複雜度的來源,Bosque改變設計以提升程式碼可讀性。 

Web site: https://www.microsoft.com/en-us/research/project/bosque-programming-language/
Web site: https://www.microsoft.com/en-us/research/uploads/prod/2019/04/beyond_structured_report_v2.pdf

微軟研究院正在開發全新程式語言Bosque,以簡單易懂為訴求,降低程式開發過程的意外複雜度(Accidental Complexity),還支援一系列新的編譯器與開發工具,最終目的是要在提高開發人員生產力的同時,又能讓程式擁有良好的品質。Bosque作者為微軟首席研究軟體設計工程師Mark Marron,其最近主要的工作還有開發時間旅行除錯工具



Mark Marron發表的論文提到,1970年代結構化程式語言和抽象資料類別,為程式語言開發模型帶來了一波改變,讓開發者不需要這麼在意底層基礎結構,把心力放在功能的實現上,因此開發人員的想法更容易實現,程式也更不容易出錯,而現在Mark Marron順著這個開發模型的想法,進一步提升開發體驗,發表了使用規範化程式開發方法的程式語言Bosque。

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,以利學術界與開發社群合作,但這個專案目前仍在早期階段,不只存在錯誤且功能有限,開發者不應該用於正式的生產環境。


留言

熱門文章