微軟開源低代碼編程語言 Power Fx,基于 Excel
微軟宣布推出新的開源編程語言 Power Fx,一種基于 Microsoft Excel 的低代碼公式語言;將可以在整個 Microsoft Power Platform 中進行使用。該語言背后的動機是開發一些 Excel 用戶熟悉的東西,以內容為中心而不是以程序為中心,并具有實時重新編譯的能力。
微軟 Power Apps 總監 PM Ryan Cunningham 稱,“借助 Power Fx,我們可以在同一時間范圍內將開發人員的影響放大許多倍。通過為開發人員提供一種熟悉且易于使用的表達邏輯的方式,我們正在極大地擴展可以構建復雜解決方案的人員。通過使用專業人士期望的工具提供 Power Fx,包括能夠在諸如 Visual Studio Code 的文本編輯器中直接編輯應用程序并使用源代碼控制的功能,我們使開發人員可以更快地找到與數百萬制造商的共同點。”
由于 Power Fx 基于 Microsoft Excel,因此它提供了與 Excel 相似的語法、函數和行為。例如,其公式是聲明性的,可以像電子表格一樣立即重新計算。微軟方面稱,Power Fx 幫助開發人員從手動保持變量和數據表更新的繁瑣任務中解放了出來。
官方文檔指出,所有編程語言(包括 Power Fx)都有表達式:一種表示對數字、字符串和其他數據類型進行計算的方式。例如,在大多數語言中,質量*加速度表示質量和加速度的乘法。表達式的結果可以放在一個變量中,作為一個過程的參數使用,或者嵌套在一個更大的表達式中。
Power Fx 在這一點上更進一步。一個表達式本身并沒有說明它在計算什么。這取決于制作者是否將其放置在一個變量中或將其傳遞給一個函數。Power Fx 不是只寫一個沒有特定意義的表達式,而是寫一個公式,將表達式與一個標識符綁定。人們把力=質量*加速度寫成一個數學意義上的計算力的公式,這個公式永遠是真的。當質量或加速度發生變化時,力會自動更新為新的值。一個表達式描述了一種計算方法,一個公式給這種計算方法起了一個名字,并把它作為一種配方。“這就是為什么我們把 Power Fx 稱為公式語言。”
例如,Stack Overflow 上的這個公式,可以按照相反的順序搜索一個字符串。在 Excel 中,它看起來如下圖:
Power Fx 的工作原理與此公式相同,但將單元格引用替換為控件屬性引用:
當輸入控件的值發生變化時,Label控件會自動重新計算公式并顯示新的值。這里沒有像其他語言中常見的OnChange事件處理程序。
另一個例子,使用公式來計算屏幕的填充色。當控制紅、綠、藍的滑塊改變時,背景色會自動改變,因為它正在重新計算。
滑塊控件沒有像其他語言中常見的 OnChange 事件。根本沒有辦法明確地設置Fill屬性值。如果顏色沒有按照預期工作,你需要看這一個公式來了解為什么沒有工作。你不需要在應用程序中搜索,找到一段代碼,在一個意外的時間設置屬性。沒有時間元素,始終保持正確的公式值。
當滑塊設置為深色時,紅色、綠色和藍色的標簽將更改為白色以進行補償。這是通過在每個標簽控件的Color屬性上使用一個簡單的公式完成的。
這樣做的好處是,它與Fill顏色發生的情況是隔離的,這是兩個完全不同的計算。代替大型的整體過程,Power Fx 邏輯通常是許多獨立的較小公式。這更容易理解,并且可以在不干擾現有邏輯的情況下進行增強。
目前,Power Fx 已被集成到 canvas apps 中。微軟方面透露,在接下來的 24 個月里,他們計劃在整個 Power Platform 的范圍內將 Power Fx 擴展為一種統一的語言。
本文轉自OSCHINA
本文標題:微軟開源低代碼編程語言 Power Fx,基于 Excel
本文地址:https://www.oschina.net/news/131835/microsoft-open-source-power-fx