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