読者です 読者をやめる 読者になる 読者になる

DPCデータの分析とかやるブログ

DPCデータの分析なんかをテキトーにやってます。

再びのアプリケーション考察

データ分析をやっていると、やっぱり「アプリケーションで配布したい!」と思うときがあります。
(このブログで書いている諸々のSQL文も、まとめてアプリケーションにバンドルしてしまいたいのです)
最近真剣に選択肢を検討してみたので、結果をつらつら書くことにしました。

1. Pythonのままアプリケーション化する

ネットで検索すると色々な方法が見つかりますが、Pyinstallerを使うのが最も現実的でしょう。
他の方法、例えばPy2exeなんかは更新が止まっちゃってますし… とはいえ、環境によってはPandasを含むアプリが上手くビルド出来なかったりします。 私が正にそうで、GitHubの開発中のビルドをぶっ込んだら走りましたが、うーん、安定はしてなさそうですね…
また、GUIをどうするか、という問題もあります。 PyQtが一番有名みたいですが、ライセンスがややこしそうです。別の選択肢として、Kivyが熱いみたいですが日本語の情報があまり出回っていません。
FlaskでWebアプリを作ってブラウザで使う、という手もありますけど…うーん…

2. Javascript + Node.js + Electronでアプリケーション化する

自分でもなぜこうしようと思ったのか分かりませんが、Node.jsで組んだウェブアプリをElectronというライブラリでデスクトップアプリに変換出来ます。
実際に使ってみようと、しばらくJavascriptとNode.jsの勉強をしてましたが…ましたが…うーん…csvを開くための方法が何パターンかあり、dataframeっぽいライブラリを使うにはbabelが必要で、うーん…
ただし、素の状態でJavascriptPythonより速いです。numpy / PandasのようなC言語ライブラリを使えば話は変わってきますが。
ちょっと大きなデータの分析にも十分使えそう。今回は、学習時間が全く足りなかったということで…

3. 素直にC#を使う

初めからそうしろよ、と言われそうですがC#をいじってます。Visual Studioすごいべんりですね!(今更
別にJavaでもいいんですが、せっかくVisual Studioが無料化されたので。 Windowsをターゲットにするなら、最初っからこれで良かったですね… ただ、グラフのプロット周りはあんまり期待できそうにありません。
(こちらはPythonが充実し過ぎているだけ、とも言えますが)