あれ、どうやったっけ

(たぶん)テキストサイト風blog。文が安定するまで書き直しあるからメンゴ。

ExcelにPython積むとか(日本語的な意味で)仕事増やすんじゃNEEEEEEEEEEEE!!!!!

disられるの承知でいいますね。やめて(震え声)

www.itmedia.co.jp

という件に関しては比較的好意的な意見が多いみたいです(Google1P目については)

ExcelにPythonが搭載? - Qiita

ExcelにPythonが搭載されることによるノンプログラマーのメリットとVBAの今後について

ExcelにPython統合か。マイクロソフトが検討中 : IT速報

問題:「Excel大先生」が中途半端にやったクソコード直す仕事がもっと増えそう(日本語絡み)

現状でもできなくね? とは思うんですが……。

それは置いておくとして、Python2だか3だかを承知のプログラマならいいと思うですよ。あるいはmatplotlibを使っている人、あるいは宗教的な意味でパイソニスタ

ごめん僕メガネストやから折伏しに来んといてね。僕の性癖は眼鏡っ娘なので。南無眼鏡っ娘仏。文字列操作が多ければruby数値計算pythonの使い分けをしますの意。

一応自身の立ち位置を示さないと話にならん(というかまたパイソニスタにディスられるのウザイ)ので言うと

  • ワンマン情シス 兼 ワンマンプログラマ
  • デザイン事業部 専属 プログラマ(ひと月に3つWebアプリ書いて納品するだけの簡単なお仕事です)
  • 嫌になって事務員になったらExcel大先生/Access大先生のコードを大量に直す仕事を担当することになりました(VBA/VBS以外の使用は許可されませんでした)

みたいな経験のある僕の意見です。

プログラマーの方がPythonに手ぇ出して日本語絡みで爆死、こっちに放り投げる奴が多発と予想します。

皆様は非プログラマであるExcel大先生とかAccess大先生達のいい加減さを理解していないのだと思います。

ぶっちゃけプログラミングなんて好きじゃないんだけど必要だから最低限覚えたって人のレベルのヤバさを承知していないのだと思います。

プログラミングが好きな人には絶対にわかんないとは思いますが、あの人ら動かす為なら何でもしますよ?

自動化しないと仕事にならんとか俺の仕事が楽になればいいからとりあえず書いただけなんで。

たぶんよくありそうな会話

まあ仮にVBAじゃなくてPythonがメインになったとします。

unicode#decode って書いてUnicodeDecodeError食らって「変なエラー出るんですけど!」って電話がかかってくるとか。序の口。

「時代はPythonらしいから手ぇ出したんだけどimportとかよくわからんし何しても動かないのよ。だからパッパと作ってくんね?」

VBAだったら集計してからCSVに吐かせられたんだけど今Pythonでしょ? なんかエラー出てできないんだよね。できても化けるし。じゃあよろしこ。てへぺろ

「あの、前の人がPythonで何か書いてたんです。VBAならわかるんですけど……Pythonで、わかんないんです」(可愛い眼鏡っ娘の事務員さんの依頼は最優先です。いいですね。最優先です

VBAの時点で上記に近い現象は割と普通でしたんで、あああああああお前ら逝ってしまええええええ度が最強に強まって俺の寿命がストレスでマッハ。可愛い眼鏡っ娘は夜伽お願いします(土下座(ひでえな俺

なおVBAでもこういう泣ける奴があります。

【何か if が8段くらいある 1関数1000行のコードがやってきた】

ここに日本語周りの何かが含まれるとなるとねえ。

Pythonをやや避ける理由のオフトピックの二コ目

あと……一部の関数はWindowsLinuxで挙動違うよね系の問題は……こっちはまあ考慮しない、考えない。うん僕見なかった!

Windowsと非Windowsで挙動が異なるのは、具体的にはsubprocess関数。LinuxだとLANG見てよしなにしますが、Windowsだと「それバイトやからあかん」とハネます。

代表例は、Windowsかつpython3だとGnu GlobalのpygmentsパーサでC/C++解析掛けると後続の別パーサーが逝きますって奴(最新版では修正済)。

一発目のsubprocessでpythonのパス確定して、二発目で実行したらアウトだったようです。僕なんざPython2と3のマニュアル確認しまくってコードスニペット書くまでわからんかったんですよ。

後日調べたら、Notepad++ではシレっと直してますが。お前らがバグレポ上げろよ

で、僕のGnu Globalの使い方は「emacs + gtags + pygments + かんぱに補完」ですね。

これ悪食というかツブシが利くというか、とにかくpygmentsが対応してるならglobalが拾ってくれて、かんぱにが繋いでemacsでコード補完押し込める。有事には是非。

主力がruby(マルチバイトの扱いが一番うまい言語)とC#の人なんですが、一応pythonの利点もありますよ程度は言わないと。

ディスる限りイイトコも褒めないと。pygments、いじょ。

褒めたから別の点Disっていいですか?

(一部の)Pythonistaは理想主義者ブッチギリですから、たぶん既存のVBAクソだから全部Pythonでやりなおせとか言い出しそう。

あの構文には妙な影響力があるようです。「それPythonでもできますよ」とか「それはPythonでなら簡単です」とか「全てPythonでやるべき」とかPythonで書けないから会社辞めて仕事探したけど今無職です」ってBlogは掃いて捨てるほど。

日本でPythonが不遇なのはわかるんですけど、お前らは日蓮宗

営業マンにPython覚えろとか、社長にPython分かれとか「正しいやり方はPythonで全部やること、それ以外ダメ」と言い出しそうで怖いんですね。既存のVBA捨てるべきって言うだろうなという意味で。こっち……というかあなたが書き直すことになるでしょうが。

企業運営が目的の人にPython最優先とか僕はよーいわんです。別に何言語でもいいと。

一部のPython使いは「Python以外認めない」というところがあるんで無理押ししそうだなと。で、日本語周り爆死怖いなあとか。

だからアレ外人用なんだってという

個人的主観ですが、ExcelなりにPython積むとなったらたぶんVBAは徐々にオワコンになると思いますから……日本語環境でPython強制になりunicode - string周りマジうぜえみたいなことが頭に浮かんでハゲそうだなと。

enc/decせんで、ぜんぶUTF-8でやればいいと思ったあなた、甘いです。甘々です。スクラロースです。

既存のツールがSJIS前提で書かれている場合、PythonUTF-8のファイル吐かせて食わせたら、ツールがクラッシュします。まあ普通。

企業ポリシーとしてアプリがインストールできないのでテキストエディタがメモ帳、とかで営業のあんちゃん、あんたのコード、改行の出力間違ってるやでなら、まあそうなりますね。

あとはなんだか良く分からないけど何かできましたという事務員さんが書いたコード、出力が文字ばっけばけの ?? モリモリで済んだらラッキーですね?

これは割と発生しやすいと思います。たぶん相手は「そんなんどうでもええし興味ないねん、なんか改行変やし出力もおかしいからお前が動くようにせいや」以外言わないことを保証します。

日本ではPythonが割と不遇であった理由は「JPerl」に類するものが登場せず、個々で日本語対応しなきゃいけなかったせいでしょう。さらに言うと、パイソニアンの大半には日本語の扱いに関する興味が湧かなかったせいなんでしょう。

何分ここジャップランドなので日本語付いてまわりますから、海外のような PerlPython の流れではなく (J)PerlRuby という現象が起きたわけで。

言っちゃ悪いのですがCJKV環境ならPythonは学術的とか統計的な用途をメインとし、Webアプリとか日常スクリプティング用途では避けたほうが良いと思います。Windowsも混ざるなら危険度アップ。

あるいはi18n絡みなWebアプリ作るときにCJKVに関わるハメになる場合も、pythonを選ぶと変なトラブルの要因になるかと思います。できない、という意味ではなく「pythonでは2でも3でもCJKV系をラフに扱ったらオモシロイことになるのでテストは大目にしたほうが良い」の意味ですね。

対抗馬のrubyはその辺優しみがあるので、たとえばi18nを考慮したWebアプリを世に問いたいベンチャーであればrubyが第一選択肢になるでしょう。「pythonは理系が使い、rubyは文系が使う」などという表現はその辺から来ているのだと思います。

何分UTF-8とASCIIって互換性あるじゃないですか。ですんでASCIIだけ使えばいいという状況ならPythonでOKなんです。そうでないなら encode/decode とかなんちゃらwrapperでくるんでゴネるとか発生します。ですんでパイソニスタが言う「Pythonは初心者に優しい」はその辺で嘘っぽいように思います。

仕事で使うかつマルチバイト混じってくるってなったらGUIじゃなくてCUI的な意味でのプログラミング経験がなかったら非プログラマの皆様は逝く、と保証します。

たぶんio.TextIOWrapper 程度で詰むかも。別にググったりしませんよ彼ら。同じことを5回以上聞くか直させに来ます。だって向こうはあなたのようにPythonが大好きなんてわけじゃなくて、プログラミングなんかに興味ないけど仕事だからイヤイヤやっただけなのですからしょうがないじゃん、覚えられるわけないでそ。

VBAの時点ですらそれが普通だったので、文字列周りで問題増えそうなpython乗るとかだとさらにハゲる。たとえばExcel VBAUTF-8CSVがしょりできないのでなんとかしてください(えがおみたいな話はあったのですよ。Shift JISの既存のテキストってどうなるのかな?(えがお) 文字列周りの問題がpython導入により、今加速する……!

なおPythonの中の人の立場になれば encode/decode は確かに正しいですが、一般ピープルからみたら全部 encode で押したほうがミスりにくい。というか僕もしばしばゲシュタルト崩壊して逆になります

貴方のコードで numpy をインポートしてるならたぶん上記の話は一切関係ないので、その点お忘れなく。

なんだったら英語圏の仕事請けてきたらええんと違うかなあ。一杯Pythonの仕事あるんと違う? Linkなんとかで。

ただ米国については「ビザ取りにくい」「コンピュータの学位ないと凄く落ちやすい」「奥村本のコードくらい全部写経したし内容分かってる。当たり前」という点はあるそうなので注意。

英語圏ではPythonはベターな選択肢だと思うのですが、日本語含むならVBAのほうがまだマシ

VBAが維持されるんならいいんですけどね、まだ。ただOOoみたく基本Pythonってなってしまったら、なんというか想像しただけで日本語周りがアレになることが容易に予想できてしまうので怖い。

おれの怒りが有頂天になったからキングベヒんもスを召喚して墓場に送ったのちにドロー! 退職願と宣言して月刊ブシロード とか言いながら退職届を机に投げつけたろかしらん。いろいろ恐ろしい度がマッハ。

マジやめて(震え声)

いや、いまのボクは無職なんですけどね。VIPPERは常に無職童貞の人間のクズなのです。

……冗談抜きでいうと求職中よ?

日本語を扱うとなるとPythonは足引っ張られる場合が多い印象があります。

2は言わずもがな。パス名に「表」含んでたらたーのしー! になってちょっと手数必要になるのは皆さん知ってますよね。すごーい! ダメ文字でクラッシュするフレンズなんだね!

3でも「素人だったら瞬殺されるだろうな」レベル、encodeとdecode逆にしてる系のかわいそうな奴ならまだマシ。なにか新しい文字コードを創作してるのかな? って感じになりそうで怖い。どうやるかは僕には想像つきませんが、Excel大先生の奇跡のファインうんこを鑑みるにネ申pythonコード爆誕しそうで怖いんですよお。

で、事務用途のExcelってぶっちゃけ「方眼紙」もあるじゃないですか。日本語含むじゃないですかあ

そんな場面がありありと想像できてしまうので本当にやめてください、なんて思うんですよ。

さすがに普通の営業マンとか事務員とか管理職とか社長に「Pythonは英語デフォで日本語使われるとめんどいから英語でしゃべれカス」なんて日本で言えるわけないでしょ、お前は三木谷か

いつものスラドでよかった

例の如くスラドだけはスラドでちょっとホッとした。僕も危惧を感じる派なので……。

ExcelにPythonの搭載検討、Microsoftがアンケート実施中 | スラド デベロッパー