再びのアプリケーション考察
データ分析をやっていると、やっぱり「アプリケーションで配布したい!」と思うときがあります。
(このブログで書いている諸々の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が必要で、うーん…
ただし、素の状態でJavascriptはPythonより速いです。numpy / PandasのようなC言語ライブラリを使えば話は変わってきますが。
ちょっと大きなデータの分析にも十分使えそう。今回は、学習時間が全く足りなかったということで…
3. 素直にC#を使う
初めからそうしろよ、と言われそうですがC#をいじってます。Visual Studioすごいべんりですね!(今更
別にJavaでもいいんですが、せっかくVisual Studioが無料化されたので。
Windowsをターゲットにするなら、最初っからこれで良かったですね…
ただ、グラフのプロット周りはあんまり期待できそうにありません。
(こちらはPythonが充実し過ぎているだけ、とも言えますが)