本日、Microsoft Power Platform ファミリーに新しく「Microsoft Power Fx」が加わりました。Microsoft Power Fxは、Microsoft Excel を基とした、オープンソースのローコード関数言語です。

Power Fx が素晴らしい理由は主に3つあります:

  1. Power Fx はオープンソースです: プログラミングの将来はよりオープンになることです。マイクロソフトは今までもC#やTypeScriptといったプログラミング言語の普及をオープンイノベーションによって加速してきました。Power Fx ではその同じオープンな方法をローコードの世界へももたらします。Microsoft は Power Fx をオープンソース化することで、より多くの方々がGitHubを通じてオープンに貢献することが可能な言語となるのです。
  2. Power Fx は Microsoft Excel を基に作られました:. すでに数千万、数億の方々に日々利用されている関数と同じものを利用し、Power Fx はより多くの方々がすでに持っているスキルを活用し、ローコードなソリューションを作ることが可能となります。Power Fx はビジネスユーザーなどの市民開発者はもちろんのこと、プロの開発者もロジックを組み、課題を解決できます。
  3. Power Fx はローコードのためにあります: Power Fx はすでに ローコードアプリケーションプラットフォームである、Microsoft Power Apps のキャンバスでも採用されています。これから先の近い将来、この言語はMicrosoft Dataverse、Microsoft Power Automate、Microsoft Power Virtual AgentsなどのPower Platformサービスへも拡張され、より多くの方々がローコードなツールをより簡単に利用できるようになります。

みんなが使えるローコードロジック  

ローコードプラットフォームで言語が必要なのはなぜでしょう?その真相として、マウス操作だけで素早くアプリやワークフローを作ることも素晴らしいことではありますが、多くのアプリはマウス操作の先を必要とし、何らかしらのロジック(動作や計算)が必要となります。その例として:

  • 現在地から15キロ以内に拠点を持ち、かつ7日以内に新規登録された顧客の一覧
  • 一番最新の投稿を緑色で表示
  • 利用者が画面上で詳細ボタンをクリックした際に、必要な関連の残業務を画面上に表示させる

といったものがあげられます。

これらのようなカスタムで設定しないといけないようなロジックは、多くの従来のローコードプラットフォームでは「限界」に達してしまい、設定内容に制限があったり、拡張性が乏しかったり、プロの開発者やそのツールに特化したスペシャリストが必要でした。

それらに比べ、Power Fx はすでに数千万、数億人の方々が日々の業務解決で計算式として利用している Excel を基にしています。

外部調査機関のIDCのアナリストによると、最も人気の開発言語であるJavaScript はすでに1170万人の開発者に日々利用されているいわれています。そして、2024年までにはその人口が32%増加し、1940万人にプロの開発者が増加すると予測されているのです。
出典: IDC, PaaSView and the Developer 2020: Focus Topic Pivot Table — Worldwide, Doc # US46800820, 2020年9月

市民開発者も、プロの開発者も

Power Fx によって、上記であげたJavaScriptのような例をさらに多くの開発者へもたらすことができると考えています。市民開発者の方々も、計算式などのロジックをより簡単に設定できるようにすることで、複雑なソリューションを構築できる人口が今までと比べられないぐらい多く参加できるようになると信じているのです。Power Fx はプロの開発者が日々利用しているツールにも対応し、Visual Studio Code などのテキストエディタから直接アプリを編集し、ソース管理も可能となり、今まで以上に開発速度を向上させながら、さらにより多くの作成者とコラボレーションすることもできるのです。

Power Fx は Excel と同じ関数やシンタックスを利用するだけではありません。動作も近しく動きます。関数はExcel のように宣言型となっており、Excelで関数を編集すると表が瞬時に再計算されるのと同じようにPower Fxでも同じように動作します。これによって関数を組み人はいつ、どのようにという条件を事前に設定しなくとも、アプリ上で動作を組み込むことができ、Power Fxが自動で認識してくれます。そのため、従来の開発言語のように、変数を宣言したり、データテーブルへの更新をマニュアルで構成する必要はありません。関数を用いることで、計算は1つの方法しかないため、全ての利用者は同じ値を元にすることができるのです。

次世代のローコードイノベーションの始まり 

今日は、より多くの場所で生産性を向上させ、広めるための始まりです。これから24ヶ月の間で、Power Fx をPower Platform の統一された言語として拡張させていきます。これにより、アプリの作成者としてのスキルは、インテリジェントなボット開発や業務自動化のエキスパートにも応用できるようになるのです。

これはマイクロソフトの開発プロジェクトの過去を踏まえると、非常に楽しみな一歩となります。Power Fx のルーツはプラットフォームが生まれるよりも前から存在する、深みのあるものです。7年前から「Tangram」と「Sienna」というプロジェクト名のもと、この言語は設計チームのVijay MitalRobin AbrahamShon Katzenberger Darryl Rubin氏によって誕生しました。彼らは関数型言語に対する博士号をもっており、AIや関数型シンタックス、Excelやプログラミング言語に対する深い経験の持ち主で、いま使われているローコード言語は線形ソルバーやMiranda(関数型プログラミング言語)、Mathematica、Pascalなどからインスピレーションを受け、マイクロソフトのいいとこ取りをしてローコード言語を生み出しました。

最初のチームがこの言語を思いついた時に3つの目標がありました:

  • 数百万人のExcel ユーザーにとって親和性の高いものであること
  • プログラム主体ではなく、コンテンツ主体であり、 すべての情報が分かりやすい命名規則を持つこと
  • 瞬時に計算され、Excelと同じく、編集するのとあわせてリアルタイムで自動でコンパイル(計算)されることで、都度手動でコンパイルし発行する必要がないこと

ローコードを進めるに当たって、Power Fxは上記をすべて満たし、それ以上のことをこれから成し遂げます。Greg Lindhorst 氏が2015年からはPower Fx 言語の開発を進めてきており、元はVisual StudioとExcelのチームでの経験ももっており、2007年には自分で表計算言語に関する特許も取得しています。今回さらにオープンソース化し、コミュニティと一緒に開発していくことで、ローコード関数を次世代のものへと参加させるために必須な一歩なのです。

詳細については、別途こちらのブログ投稿(和訳中)をご覧下さい。Power Fx で皆さんが色々成し遂げることを楽しみにしてます!