
Excelの数式を元にしたプログラミング言語「Microsoft Power Fx」が発表される 54
ストーリー by nagazou
伏線張ってた 部門より
伏線張ってた 部門より
Microsoftは昨年、Excelの数式は世界で最も広く使われているプログラミング言語であるとする話を出していたが、3月2日にこのExcelの数式をベースにしたプログラミング言語「Microsoft Power Fx」を発表した。オープンソースとなっておりGitHub上で公開されている(Microsoft Power Apps、GitHub、iTmedia、GIGAZINE)。
Power Fxは、Microsoftのローコード・ノーコードツール群「Power Platform」のロジックの記述に使用される言語。Excelでの数式の知識をプログラミングに使えるのが特徴で、いわゆるノーコードからプロ開発者によるプロコード開発といったあらゆる場面で利用できるとのこと。Power FxではExcelの関数とほぼ働きをする関数が多数用意されているものの、膨大な機能が備わっているExcelにはまだ及ばない。このため、今後はExcel開発チームとコラボレートしつつ、どの機能を追加するかを検討していくそうだ(@IT)。
Power Fxは、Microsoftのローコード・ノーコードツール群「Power Platform」のロジックの記述に使用される言語。Excelでの数式の知識をプログラミングに使えるのが特徴で、いわゆるノーコードからプロ開発者によるプロコード開発といったあらゆる場面で利用できるとのこと。Power FxではExcelの関数とほぼ働きをする関数が多数用意されているものの、膨大な機能が備わっているExcelにはまだ及ばない。このため、今後はExcel開発チームとコラボレートしつつ、どの機能を追加するかを検討していくそうだ(@IT)。
事務職としての感想 (スコア:1)
「Excelの関数だから簡単」「初心者でも理解しやすい」って間違いだと思うんだよね。
最初のとっつきやすさは確かに重要だけど、それよりも構文を理解した後の可読性の方が重要だと思う。
複雑な手順をプログラムにするなら、どんな言語やツールを使うにしても、できたブログラムは複雑になる。目的の処理に向いた言語を使えば、そうで無い言語を使うよりプログラムはしやすくなるけど、できたプログラム自体の複雑さは変わらないと思う。
そこでExcelのワークシート関数なんだけど、一つのセルに一つの機能を割り当てるような使い方をするなら理解しやすいけど、本来ワークシート関数では手に負えないような処理をさせようとすると、関数の入れ子が複雑になったりして、手をつけられないようなワークシートができあがる。
表計算ソフトのワークシートもプログラムの一種だけど、MS Excelの場合、ワークシート関数の他にVBAもあるし、プログラム化する手順に合わせて使い合わせる必要があると思うんだよね。
でも、職場(一般の事務所)のいわゆるパソコンに詳しい人とかIT部門は「Excelのワークシートは簡単、VBAは難しい」とVBAを使わないようにと、かえってトリッキーな手段を強いてる。
プロのプログラマー向けの言語ならラムダ式みたいな機能を取り入れることで効率化できるけど、初心者も使うかもしない言語にこういうのはやばいような気がする。
もっとやばいのは「このツールを使うとexcelの知識でRPAを実現できるんです」と売り込むこと。真に受けるところが多く出てきて、ブラックボックスが量産されそう。
以上のことから、一般のオフィス向けの製品で使うプログラム言語は、可読性ととっつきやすさのバランスからVBAとかpythonとかあたりにしてほしいなあ。
/*
「RDBは難しいから社員研修とかはしない」とか言い切る情報システム管理部門ってあり得ないよな。
そういう情報リテラシの普及もしないまま、EUCやれとか何考えてるのか・・・。
*/
Re: (スコア:0)
VBAはいい加減古いのでもうちょっとなんか新しくしてほしいとは思う。
後これは本当に個人的な話だが、VB系じゃなくてC系にしてほしい。
Sub
End Sub
とかがしっくりこない。{}を使わせてくれ。
Re: (スコア:0)
TeXとかVBAとかの長所って言語仕様がフリーズしてることだと思うんだよな
Re: (スコア:0)
互換性が高すぎた故に64bit化が遅れた要因の一つに、アプリの一機能に過ぎないのにVBAはWin32APIやらCOMを駆使したり
ExcelやAccessはVB6のパッケージの種類の一つじゃねーぞと
Re: (スコア:0)
2003あたりから作られたVBAマクロを移植した経験があるからVBAを避けているのでは?あの当時に作ったマクロはたいていはWin32APIや
らOCMを駆使しているので最初から作り直しですし。
今から作るマクロもちゃんと考えないと32bit/64bitでしか動かない駄目マクロがつくれちゃいますし。
Re: (スコア:0)
(JPerl)誰か呼んだ?
Re: (スコア:0)
JはともかくPerlは後方互換性が高いだけでフリーズしているわけではない
Re: (スコア:0)
関数名にふつうに絵文字使ったりできるしね。何か国語ものドキュメント書かなくていいのはホント楽だ(らくだ)。
Re: (スコア:0)
Re: (スコア:0)
大体の言語はソースコードがユニコード可だから…
Re: (スコア:0)
そのせいで未だにPerl4みたいなコード書く奴がいるので良いのか悪いのか・・・
Re: (スコア:0)
これ、メンテナンスとか可読性とか考える用途は想定してないんじゃないの?
既存の言語と競争・競合するつもりもないでしょう。
Re: (スコア:0)
想定しなければメンテナンスの必要性がなくなるわけではないので。Excelマクロでも作成者が退職してメンテナンス不能になったけど廃止もできない過去の遺物とかよく問題になって、そういうことを繰り返すうちに「マクロは使うな」となる
Re: (スコア:0)
メンテナンス必要な、継続利用するな場所にExcelマクロ使ったから悪いのであって、Excelマクロ自体が悪いわけじゃない。
目の前の1回だけの作業を効率化するのに使うには問題ない。
そういう風に用途を考えずに、あの言語はダメあ、ExcelマクロはNGなんて言ってるのは的外れ。
悪いのは言語じゃなくて、用途を考えずに言語を選ぶ人だ。
Re: (スコア:0)
> メンテナンス必要な、継続利用するな場所にExcelマクロ使ったから悪い
他の選択肢が存在する職場ばかりじゃないからな。
他の言語の実行環境や開発環境を入れることが許可されないところでも、Excelは使えることが多いから何でもマクロでやる(やらざるを得ない)だけ。
Excelのマクロで自動化するか、自動化を諦めるかの二択なら前者を選ぶしかないんだよ。
Re: (スコア:0)
マクロ使う → メンテできなくなる → マクロ使うな
という流れが予想されているのなら、最初からマクロを使わないのが最善ってことだな。
Re: (スコア:0)
ちょうどさっきそんな話の動画見た所だったが
悪いのはそれを引き継げるスキルのある人間を採れない会社なんだよな。
どこぞのFF3みたいなスーパープログラマーの難解コードを引き継げる人間を用意しろって話じゃないんだからさ。
マクロ程度ならできる人間はゴロゴロいる。
にもかかわらず、できない人間を採用する。何故か?給料をケチるから。
ただのバイトで雇ったけど元PGで、マクロで色々効率化してくれた→その人が辞めた→誰もメンテできない
の状態で新しく雇う人間がまたバイトだからな。
効率化してくれた、って時点で本来の目的のバイトじゃない部分で役立ってるんだからスキル分給料上げていれば辞めなかったかもしれない。
辞めたとしても、それで効率化できているんだったらその分のコストカットが実現してるんだから
後継を雇う時は最初からできる人間を普通のバイトより高く雇えばいい。
それをやろうとしない経営者や人事が馬鹿なだけ。
Re: (スコア:0)
会社が採用したかったのはただのバイトであって、マクロで効率化したかったわけではないのでは。
たまたま運よく効率化出来たら儲けものだけど、作業員には元々そんなこと期待してない。
経営者や人事が馬鹿というより、会社が求めるのは作業員なのに、スキルが無い人ばかり採用すると嘆く社員の空回りのような。
Re: (スコア:0)
以前、他の社員でもメンテできるようにと、関数のみで作ったエクセルファイルは、
再計算に1分以上かかっていた。
VBAで組み直したら一瞬。
Re:事務職としての感想 (スコア:1)
関数を大量に使ったワークシートは、開いたりスクロールしたりといった操作も大変重くなってきて使いにくいですよね。
>VBAで組み直したら一瞬。
同じ処理を大量のセルに行う場合、VBAと組みあわせたほうが早くなりますね。
Re: (スコア:0)
横からだがバカバカ言ってる奴がバカだって5ちゃんでゆってた
Re:事務職としての感想 (スコア:1)
自分がバカであると自覚できれば真のバカになれますね。
Re: (スコア:0)
自分がバカだとすら理解してないほうがバカのレベルが高いんだよ。
バカだと自覚してるバカ→普通のバカ
バカだと自覚してないバカ→ハイレベルのバカ
そもそもバカじゃない人間なんていない。
Re: (スコア:0)
つまり人間だと自覚してないハイレベルな人間が何処かに存在するという
Re: (スコア:0)
(48775)は「自身をバカと呼べば自覚がある建前が立って逆ギレ防御に便利」としか
思ってない、バカな点を指摘されると激昂して逃げるスペシャルバカだからなぁ…
Re: (スコア:0)
意識他界系バカ
Re: (スコア:0)
君は自分の何処がバカかの推論を間違ってるから自覚のないバカだよ
FXってなんだろな~ (スコア:0)
ExならExcelだけどFxってなんだろうな~
まさかExcelだけどPower Pointとの関連が
Power PlatFormとはよくしらないが
Powerとつくというのは.Net系という意味だろうか
Re:FXってなんだろな~ (スコア:1)
Power Ploatform は流行りのオフィスオートメーション関連のツール集というか基盤、RPAだとかのローカル環境の自動化とか、ローコード開発環境
PC用の部分ではもちろん .NET のものもあるが、スマホやらWEBサービスが主体なので、大半は.NETとは無関係。
今回の PowerFX も.NET との直接的な関連はなさそう。まぁ.NETとの連携は入るだろうけど。
いわゆるソフトウェアエンジニアが開発に使うものじゃない。
事務職とかコンサルの人が提携業務や作業の自動化するためのツール
Re: (スコア:0)
s/提携業務/定型業務/
Re: (スコア:0)
Functionでしょ。関数のことを F(x) とか Fx と表現することは良くあるよ。
例えば、PC-FX(違
Formula かもしれないけどね。ExcelだからFormula(数式)かもなぁ…。
Re: (スコア:0)
てか、Excelの数式バーにそのままfxって表示されてたような。
Re: (スコア:0)
Powerとつくというのは.Net系という意味だろうか
力技でFixするためのツールではないかと
# 原稿用紙入力されたEXCELをCONCATENATIONでまとめよう
Re: (スコア:0)
PowerShellの機能をGUI化した感じらしいからもろに.NET系
Re: (スコア:0)
>PowerShellの機能をGUI化した感じ
全然違う
Re: (スコア:0)
Powershell要素、微塵もないぞ
Re: (スコア:0)
BIとかRPAとかローコード系。何で実装されてるかは色々でしょ。
うーん (スコア:0)
ここ [microsoft.com]で見られるサンプルのyamlだけみると新たなるそびえ立つク◯を生み出そうとしてるようにしか見えないんだが。。。
Re: (スコア:0)
どの辺が?何となく長そうに見える?
Re: (スコア:0)
とてもメンテナブルには見えない
まぁプレーンテキストであるというだけで大分ましだが。
Re: (スコア:0)
もしかしてyamlを手書きしたり、自分で直接編集すること想定してる?
BI やRPAとかやってみればわかるが、手で修正することも可能だが、ツールが自動生成したものであって、人が触ることは99%ない。
何をやってるか確認するのに、テキストを見れなくないし、手で直すことも可能というだけだよ。
Re:うーん (スコア:1)
なるほどね。
いやまさかこのyamlをゼロから作るものだとは思ってないが。
まぁたしかに逆にどういう言語ならこの汎用言語が目指すローコード用途に向いてるかという事を考えると代替案はすぐ出ないな。
Re: (スコア:0)
なんか、VB(VBAでは無い)の.frmファイルと一対一してそう。ただこちらは署名みたいな情報が
ついていて、しかも一部バイナリなので、手で直すのは不可能。
#AccessVBAもプロジェクトをExportすれば.frmファイルと同等の情報が入っている。UTF-16で。
yamlは、手で直せるというのが新成果という事でしょうか?
Re: (スコア:0)
エクセルもプレーンテキストですからね。エクセルも実態はXMLですからね。
Re: (スコア:0)
これは明らかにExcelの数式記述スタイルをモチーフにした言語で、複雑な数式を表現すれば当然複雑になる。
数式を単純にすればメンテンナンス容易だと思うのならそのように書けばいいが、それがこれを利用する目的に適っているかは人に依るだろう。
EXCEL文書を作るユーザーが各セルの数式をメンテナンス容易に書くことを求めるか否かと同様の問題。
YAML自体にはあまり意味は無いだろう。YAMLの値の部分がこの言語の本体だろうから。
Re: (スコア:0)
> XCEL文書を作るユーザーが各セルの数式をメンテナンス容易に書くことを求めるか否かと同様の問題。
同様の問題ということはやっぱ新しいカオスじゃね?
Re: (スコア:0)
TypeScript推しなんでしょ?それでいい感じに動くようなもの作ってよ!
Excelとの互換性がどこまで達成されるのか (スコア:0)
是非ともセル表示等のGUIやVBA,マクロの互換性も高めて欲しい。
Re: (スコア:0)
それExcelだろ
て言って欲しそうすぎてよだれ溢れちゃってる
Re: (スコア:0)
コーディング開始前の欲求明確化フェーズにスプレッドシートUIは必須よね
白紙にイキナリ関数並べ機能組み上げろ言われても手は動かない