パスワードを忘れた? アカウント作成
15221776 story
ソフトウェア

Excelの数式を元にしたプログラミング言語「Microsoft Power Fx」が発表される 54

ストーリー by nagazou
伏線張ってた 部門より
Microsoftは昨年、Excelの数式は世界で最も広く使われているプログラミング言語であるとする話を出していたが、3月2日にこのExcelの数式をベースにしたプログラミング言語「Microsoft Power Fx」を発表した。オープンソースとなっておりGitHub上で公開されている(Microsoft Power AppsGitHubiTmediaGIGAZINE)。

Power Fxは、Microsoftのローコード・ノーコードツール群「Power Platform」のロジックの記述に使用される言語。Excelでの数式の知識をプログラミングに使えるのが特徴で、いわゆるノーコードからプロ開発者によるプロコード開発といったあらゆる場面で利用できるとのこと。Power FxではExcelの関数とほぼ働きをする関数が多数用意されているものの、膨大な機能が備わっているExcelにはまだ及ばない。このため、今後はExcel開発チームとコラボレートしつつ、どの機能を追加するかを検討していくそうだ(@IT)。
  •  「Excelの関数だから簡単」「初心者でも理解しやすい」って間違いだと思うんだよね。
     最初のとっつきやすさは確かに重要だけど、それよりも構文を理解した後の可読性の方が重要だと思う。

     複雑な手順をプログラムにするなら、どんな言語やツールを使うにしても、できたブログラムは複雑になる。目的の処理に向いた言語を使えば、そうで無い言語を使うよりプログラムはしやすくなるけど、できたプログラム自体の複雑さは変わらないと思う。

     そこでExcelのワークシート関数なんだけど、一つのセルに一つの機能を割り当てるような使い方をするなら理解しやすいけど、本来ワークシート関数では手に負えないような処理をさせようとすると、関数の入れ子が複雑になったりして、手をつけられないようなワークシートができあがる。

     表計算ソフトのワークシートもプログラムの一種だけど、MS Excelの場合、ワークシート関数の他にVBAもあるし、プログラム化する手順に合わせて使い合わせる必要があると思うんだよね。
     でも、職場(一般の事務所)のいわゆるパソコンに詳しい人とかIT部門は「Excelのワークシートは簡単、VBAは難しい」とVBAを使わないようにと、かえってトリッキーな手段を強いてる。

     プロのプログラマー向けの言語ならラムダ式みたいな機能を取り入れることで効率化できるけど、初心者も使うかもしない言語にこういうのはやばいような気がする。
     もっとやばいのは「このツールを使うとexcelの知識でRPAを実現できるんです」と売り込むこと。真に受けるところが多く出てきて、ブラックボックスが量産されそう。

     以上のことから、一般のオフィス向けの製品で使うプログラム言語は、可読性ととっつきやすさのバランスからVBAとかpythonとかあたりにしてほしいなあ。

    /*
     「RDBは難しいから社員研修とかはしない」とか言い切る情報システム管理部門ってあり得ないよな。
     そういう情報リテラシの普及もしないまま、EUCやれとか何考えてるのか・・・。
    */

    ここに返信
    • by Anonymous Coward

      VBAはいい加減古いのでもうちょっとなんか新しくしてほしいとは思う。
      後これは本当に個人的な話だが、VB系じゃなくてC系にしてほしい。
      Sub
      End Sub
      とかがしっくりこない。{}を使わせてくれ。

      • by Anonymous Coward

        TeXとかVBAとかの長所って言語仕様がフリーズしてることだと思うんだよな

        • by Anonymous Coward

          互換性が高すぎた故に64bit化が遅れた要因の一つに、アプリの一機能に過ぎないのにVBAはWin32APIやらCOMを駆使したり
          ExcelやAccessはVB6のパッケージの種類の一つじゃねーぞと

          • by Anonymous Coward

            2003あたりから作られたVBAマクロを移植した経験があるからVBAを避けているのでは?あの当時に作ったマクロはたいていはWin32APIや
            らOCMを駆使しているので最初から作り直しですし。
            今から作るマクロもちゃんと考えないと32bit/64bitでしか動かない駄目マクロがつくれちゃいますし。

        • by Anonymous Coward

          (JPerl)誰か呼んだ?

          • by Anonymous Coward

            JはともかくPerlは後方互換性が高いだけでフリーズしているわけではない

            • by Anonymous Coward

              関数名にふつうに絵文字使ったりできるしね。何か国語ものドキュメント書かなくていいのはホント楽だ(らくだ)。

              • by Anonymous Coward
                📕と🐫
              • by Anonymous Coward

                大体の言語はソースコードがユニコード可だから…

            • by Anonymous Coward

              そのせいで未だにPerl4みたいなコード書く奴がいるので良いのか悪いのか・・・

    • by Anonymous Coward

      これ、メンテナンスとか可読性とか考える用途は想定してないんじゃないの?
      既存の言語と競争・競合するつもりもないでしょう。

      • by Anonymous Coward

        想定しなければメンテナンスの必要性がなくなるわけではないので。Excelマクロでも作成者が退職してメンテナンス不能になったけど廃止もできない過去の遺物とかよく問題になって、そういうことを繰り返すうちに「マクロは使うな」となる

        • by Anonymous Coward

          メンテナンス必要な、継続利用するな場所にExcelマクロ使ったから悪いのであって、Excelマクロ自体が悪いわけじゃない。
          目の前の1回だけの作業を効率化するのに使うには問題ない。

          そういう風に用途を考えずに、あの言語はダメあ、ExcelマクロはNGなんて言ってるのは的外れ。
          悪いのは言語じゃなくて、用途を考えずに言語を選ぶ人だ。

          • by Anonymous Coward

            > メンテナンス必要な、継続利用するな場所にExcelマクロ使ったから悪い

            他の選択肢が存在する職場ばかりじゃないからな。
            他の言語の実行環境や開発環境を入れることが許可されないところでも、Excelは使えることが多いから何でもマクロでやる(やらざるを得ない)だけ。
            Excelのマクロで自動化するか、自動化を諦めるかの二択なら前者を選ぶしかないんだよ。

            • by Anonymous Coward

              マクロ使う → メンテできなくなる → マクロ使うな
              という流れが予想されているのなら、最初からマクロを使わないのが最善ってことだな。

        • by Anonymous Coward

          ちょうどさっきそんな話の動画見た所だったが
          悪いのはそれを引き継げるスキルのある人間を採れない会社なんだよな。
          どこぞのFF3みたいなスーパープログラマーの難解コードを引き継げる人間を用意しろって話じゃないんだからさ。
          マクロ程度ならできる人間はゴロゴロいる。
          にもかかわらず、できない人間を採用する。何故か?給料をケチるから。

          ただのバイトで雇ったけど元PGで、マクロで色々効率化してくれた→その人が辞めた→誰もメンテできない
          の状態で新しく雇う人間がまたバイトだからな。
          効率化してくれた、って時点で本来の目的のバイトじゃない部分で役立ってるんだからスキル分給料上げていれば辞めなかったかもしれない。
          辞めたとしても、それで効率化できているんだったらその分のコストカットが実現してるんだから
          後継を雇う時は最初からできる人間を普通のバイトより高く雇えばいい。

          それをやろうとしない経営者や人事が馬鹿なだけ。

          • by Anonymous Coward

            会社が採用したかったのはただのバイトであって、マクロで効率化したかったわけではないのでは。

            たまたま運よく効率化出来たら儲けものだけど、作業員には元々そんなこと期待してない。
            経営者や人事が馬鹿というより、会社が求めるのは作業員なのに、スキルが無い人ばかり採用すると嘆く社員の空回りのような。

    • by Anonymous Coward

      以前、他の社員でもメンテできるようにと、関数のみで作ったエクセルファイルは、
      再計算に1分以上かかっていた。

      VBAで組み直したら一瞬。

  • by Anonymous Coward on 2021年03月05日 18時27分 (#3989126)

    ExならExcelだけどFxってなんだろうな~
    まさかExcelだけどPower Pointとの関連が

    Power PlatFormとはよくしらないが
    Powerとつくというのは.Net系という意味だろうか

    ここに返信
    • by Anonymous Coward on 2021年03月06日 7時23分 (#3989400)

      Power Ploatform は流行りのオフィスオートメーション関連のツール集というか基盤、RPAだとかのローカル環境の自動化とか、ローコード開発環境
      PC用の部分ではもちろん .NET のものもあるが、スマホやらWEBサービスが主体なので、大半は.NETとは無関係。
      今回の PowerFX も.NET との直接的な関連はなさそう。まぁ.NETとの連携は入るだろうけど。

      いわゆるソフトウェアエンジニアが開発に使うものじゃない。
      事務職とかコンサルの人が提携業務や作業の自動化するためのツール

    • by Anonymous Coward

      Functionでしょ。関数のことを F(x) とか Fx と表現することは良くあるよ。

      例えば、PC-FX(違

      Formula かもしれないけどね。ExcelだからFormula(数式)かもなぁ…。

      • by Anonymous Coward

        てか、Excelの数式バーにそのままfxって表示されてたような。

    • by Anonymous Coward

      Powerとつくというのは.Net系という意味だろうか

      力技でFixするためのツールではないかと

      # 原稿用紙入力されたEXCELをCONCATENATIONでまとめよう

      • by Anonymous Coward

        PowerShellの機能をGUI化した感じらしいからもろに.NET系

        • by Anonymous Coward

          >PowerShellの機能をGUI化した感じ

          全然違う

        • by Anonymous Coward

          Powershell要素、微塵もないぞ

    • by Anonymous Coward

      BIとかRPAとかローコード系。何で実装されてるかは色々でしょ。

  • by mizogami00 (49281) on 2021年03月05日 19時32分 (#3989166)

    ここ [microsoft.com]で見られるサンプルのyamlだけみると新たなるそびえ立つク◯を生み出そうとしてるようにしか見えないんだが。。。

    ここに返信
    • by Anonymous Coward

      どの辺が?何となく長そうに見える?

      • とてもメンテナブルには見えない

        まぁプレーンテキストであるというだけで大分ましだが。

        • by Anonymous Coward

          もしかしてyamlを手書きしたり、自分で直接編集すること想定してる?
          BI やRPAとかやってみればわかるが、手で修正することも可能だが、ツールが自動生成したものであって、人が触ることは99%ない。
          何をやってるか確認するのに、テキストを見れなくないし、手で直すことも可能というだけだよ。

          • by mizogami00 (49281) on 2021年03月06日 19時36分 (#3989748)

            なるほどね。
            いやまさかこのyamlをゼロから作るものだとは思ってないが。

            まぁたしかに逆にどういう言語ならこの汎用言語が目指すローコード用途に向いてるかという事を考えると代替案はすぐ出ないな。

          • by Anonymous Coward

            なんか、VB(VBAでは無い)の.frmファイルと一対一してそう。ただこちらは署名みたいな情報が
            ついていて、しかも一部バイナリなので、手で直すのは不可能。
            #AccessVBAもプロジェクトをExportすれば.frmファイルと同等の情報が入っている。UTF-16で。
            yamlは、手で直せるというのが新成果という事でしょうか?

          • by Anonymous Coward

            エクセルもプレーンテキストですからね。エクセルも実態はXMLですからね。

        • by Anonymous Coward

          これは明らかにExcelの数式記述スタイルをモチーフにした言語で、複雑な数式を表現すれば当然複雑になる。
          数式を単純にすればメンテンナンス容易だと思うのならそのように書けばいいが、それがこれを利用する目的に適っているかは人に依るだろう。
          EXCEL文書を作るユーザーが各セルの数式をメンテナンス容易に書くことを求めるか否かと同様の問題。

          YAML自体にはあまり意味は無いだろう。YAMLの値の部分がこの言語の本体だろうから。

          • by Anonymous Coward

            > XCEL文書を作るユーザーが各セルの数式をメンテナンス容易に書くことを求めるか否かと同様の問題。
            同様の問題ということはやっぱ新しいカオスじゃね?

    • by Anonymous Coward

      TypeScript推しなんでしょ?それでいい感じに動くようなもの作ってよ!

  • by Anonymous Coward on 2021年03月05日 21時46分 (#3989252)

    是非ともセル表示等のGUIやVBA,マクロの互換性も高めて欲しい。

    ここに返信
    • by Anonymous Coward

      それExcelだろ

      て言って欲しそうすぎてよだれ溢れちゃってる

    • by Anonymous Coward

      コーディング開始前の欲求明確化フェーズにスプレッドシートUIは必須よね
      白紙にイキナリ関数並べ機能組み上げろ言われても手は動かない

typodupeerror

クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人

読み込み中...