Microsoftは、「Excel」の数式をベースにしたオープンソースのローコードプログラミング言語「Microsoft Power Fx」を発表した。Excelの数式や関数に慣れていればノーコードやローコードで開発でき、他のプログラミング言語と組み合わせた「プロコード」でもアプリケーションを開発できるという。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Microsoftは2021年3月2日(米国時間)、「Microsoft Power Fx」を発表した。Power Fxは「Microsoft Excel」の「数式」をベースにしたオープンソースの汎用(はんよう)プログラミング言語。
プログラミング未経験者によるノーコード開発から、ベテランのプロ開発者によるプロコード開発まで、あらゆる場面で利用でき、多様なチームがこの言語を用いてコラボレーションを重ね、時間や費用を節約できると、Microsoftは述べている。
Power Fxは宣言型の数式でオブジェクトをバインドする。Microsoftは次のような例を挙げて説明している。
「UIコントロールのVisibleプロパティが表計算ソフトウェアのセルのような役割を果たす。関連付けられた数式が、他のコントロールのプロパティに基づいて、値を計算する。数式のロジックは、表計算ソフトウェアの場合と同様に自動的に再計算を進め、それがコントロールの見た目に影響する」。必要に応じて今後は命令型ロジックも提供するという。
「スプレッドシートを作るのと同じように、アプリケーションを簡単に作れるとしたら?」「既存のスプレッドシートの知識を活用できるとしたら?」という疑問が、Power Fxが登場したきっかけとなったのだという。
Power Fxは強く型付けされた宣言型の関数型言語であり、人間が読みやすいテキストで表現される。アプリケーションソフトウェアのベンダーが、Excelと似た数式バーや、「Visual Studio」のテキストウィンドウで直接扱えるローコード言語だ。「ロー」とはこの言語の簡潔でシンプルな性質に由来しており、ベンダーも開発者も、この言語で一般的なプログラミングタスクを簡単に実行できる。
次の表は現時点のPower Fxで利用可能な関数の一覧であり、緑色の背景が付いた関数はExcelの関数と同じ働きをするか、またはほとんど変わらないものを示す。Excelには膨大な機能が備わっているため、Excel開発チームとコラボレートしながら、どの機能を追加するかを決めていくとしている。
Excelで計算する場合、式を書くだけではなく、特定のセルから値を取り出し、それを別のセルに書き込む。Power Fxの演算もこれと同じだ。Power Fxではセルがコントロールかオブジェクトのプロパティに置き換えられる。
次の例は、Stack OverFlowに掲載された質問を解くためのExcelシートの内容だ。文章を入力すると最後の単語を抜き出す処理を実行している。
これと同じ処理を実行するPower Fxのコードは次のようになる。Excelと異なるのは、セルへの参照がコントロールプロパティへの参照に変わっているところだけだ。
Input.Text(上のボックス)に入力されたテキストが変化すると、Label.Text(下のボックス)の内容が自動的に再計算されている。Power FxアプリケーションはExcelのように動作し、自動再計算が働いている。
Power Fxは「Microsoft Power Platform」ファミリーの新しいメンバーという位置付けだ。Microsoft Power Platformは、データの収集から解析、予測までを、ローコード開発で実現する業務アプリケーションプラットフォームだ。既に「Power Apps」「Power BI」「Power Automate」「Power Virtual Agents」が利用されている。
Power Fxは全くの新しい言語ではない。Power Appsでビジネスアプリケーションをドラッグ&ドロップで作成するための「キャンバス」で基盤として使用されてきた。
Microsoftによれば、Power FxはPower BIに備わっているM言語やDAX言語を置き換えるものではなく、これらを補完するものとなる。M言語とDAX言語は、大量のデータの読み取りやシェーピング、結合、要約に焦点を当てているのに対し、Power Fxは、小規模なリレーショナルデータの読み取りと書き込みに焦点を当てているという。
Microsoftは今後2年間でPower Fxを単一の一貫した言語として拡張し、Power PlatformファミリーのPower Automate、Power Virtual Agentsや、Power Appsのローコードデータプラットフォーム「Microsoft Dataverse」などで利用できるようにする。誰もがローコードツールを手軽に使い始められるようにすることが狙いだ。
既に数億人のユーザーが使い慣れているExcelの数式をベースにしていることから、幅広い人々がPower Fxによって、手持ちのスキルを生かしてローコードソリューション開発に参加できると同社は述べている。Power Fxは、ビジネスユーザーとプロの開発者が、ロジックの表現や問題解決のためにともに利用できる共通基盤になるとした。
プロの開発者は、次のようなPower Fxの機能を使うことで、開発コストや時間を節約できるという。
Power Fxは「Visual Studio Code」「GitHub」「Azure DevOps」といったツールの機能を利用できる。開発プロセスを変えることなく、Power Fxを利用して開発を加速できる。
JavaScriptやC#などの汎用言語で作成されたカスタムAPIコネクターと組み合わせたカスタムロジックを作成できる。カスタムコネクターを使うとあらゆるREST(REpresentational State Transfer)Webサービスと通信できる。コードコンポーネントを使用すると、Power Fxは完全にカスタム化されたJavaScriptとインタラクトできる。
Dataverseのエンティティとデータ型はファーストクラスオブジェクトであり、ガードレール機能が不正コードなどの実行を防止する。
Power Fxを現時点で試すには、Power Appsの無料トライアルにサインアップし、ドキュメント「Power Apps でキャンバス アプリの数式の使用を始める」を参考にするとよいと、Microsoftはアドバイスしている。
Copyright © ITmedia, Inc. All Rights Reserved.