Pythonは、IoTにもWebにもAIにも対応した汎用性の高いプログラミング言語だと思っています。しかも書きやすく読みやすい&ライブラリが豊富。私のような35歳過ぎてからプログラミングを始めたような人間には、これ以上ない敷居の低い言語だと感じています。
PythonではPyQtというライブラリを使うことで、Windows向けのGUIアプリも作れます。私も、つたないコードを書きながら、製造の現場で使うPython-GUIアプリをいくつも作ってきました。
しかしここにきて、PythonでGUIアプリを作るより、Webアプリ化してサーバーサイドでPythonを動かした方が良いんじゃないかと考えるようになりました。その理由をまとめます。
PythonでGUIアプリを作る前にまずWebアプリ化できないか考える
製造業でWebアプリというと、たいていが業務で使うような生産管理ツールが思い浮かびます。しかし、昨今のWeb技術の進歩により、サーバーサイドでもPythonが問題なく動くようになりました。これによって、Pythonの豊富なモジュールやライブラリを使いながら、フロントエンドはVue.jsなどでキレイなアプリ画面を構築できるようになりました。
これは本当に画期的なことで、Pythonが苦手とするGUIという部分を補ってくれるものと感じています。
レンタルサーバーでPythonが許可されているものはそう多くありません。しかし時代が要求すれば、いづれどこのサーバーでもPythonが動く環境が提供されるでしょう。
社内サーバを自力で立てるような場合は、好きなバージョンのPythonを入れられますし、仮想環境での運用もやりやすいと感じています。最近は自サーバを持たずに、AWS等のクラウドサービスに移行するケースが増えているようです。しかし、自社にWebやネットワーク、データベースといった技術を残すためにも、できるだけ環境を自前で用意する意味はあると思っています。
「なんとなく」ですが、、、
Web技術の進化により、インストール型のアプリからWebベースのアプリへと移行が始まる気がしています。
製造業では.Net、Excelアプリが主役
製造業では、ExcelのVBAを使ったアプリを組んでいるケースが多くあります。VBAは本当によくできた言語で、Excelがもともと持っている関数やグラフ機能をうまく使えば、わりと無敵な製造業向けアプリができます。しかし、Excelに完全に依存しているため、PC + Excelというタッグでなければアプリ自体が実行できません。
またVBAの弱点として「共同開発できない」という点もあります。これは、昨今のスピード感を求められる開発においては最悪の状況で、VBAでの開発をほぼ一人で実装しなければなりません。この状況ではスキルの伝承もしにくいですし、開発者ひとりにかかる負担が非常に多い。私の職場では、Excel開発はできるだけ早く脱却すべき項目としてみています。
製造業ではC#やVBなどの.NET FRAMEWORKをつかったソフトウェアも人気です。Visual Basicを使えば、アプリ画面とコーディングの行き来がスムーズでとても開発しやすいんですよね。
動作が.NET FRAMEWORKのバージョンに依存するという欠点はありますが、それはPythonなども同じ。今後もしばらくは.NET由来のアプリが使われるでしょう。
Python-GUIアプリ不満点
冒頭のPyQtでPython-GUIアプリを作るにしても、表示はWndowsに依存し、正直かっこ悪い見栄えとなります。「見栄え」ってけっこう大事で、洗練されたWebページのようなアプリであれば、そのアプリを使う作業者も気持ちが良いと思うのです。それが生産性に直結するか・・・はわかりませんが。
もう1点PyQtを使ったPython-GUIアプリの製作には不満点があります。それは、最終的にexe化したプログラムデータが非常に大きくなってしまうこと。これは、Pythonに読み込むモジュールが多いほどファイル容量が肥大化します。仕様上どうしようもないみたいです。
まぁPythonのGUIとの連携機能はあとから付けたようなものですので、致し方ないのかもしれませんね。
[st-card id=1168 label=”” name=”” bgcolor=”” color=”” readmore=”on”]
WebアプリならPython-GUIアプリやExcelアプリの不満は解消される?
Webベースで開発すれば、Python-GUIアプリやExcelアプリの不満は解消されるかと言えば、そんなに早くそのタイミングが来るとも思えません。製造の現場では、Webの技術でハードを動かすようなプログラミングはあまり聞いたことがありません。
IoTの分野でやっとそのような動きが出てきたところでしょうか。
たとえば、ドローンのようなロボットをスマホブラウザで制御する、といったことはすでにできるようになっています。
私の尊敬するシリコンバレーのPythonプログラマー:酒井潤先生も、UdemyでドローンのPythonプログラム講座をリリースされ、人気を得ています。
⇒シリコンバレー現役エンジニアが教える未経験者のためのPythonドローンプログラミング
こういった先端技術に触れるたびに、製造の現場のアプリもWebに移行していくのではないか?と感じるんですね。技術進歩はまさに日進月歩ではありますが、技術やサービスが乱立する現代において、製造Webアプリのスタンダードが確立されるまでは、まだ少しかかるでしょう。
ただ私は、とにかくやってみたい!と思っています。
バックエンドはPythonで書き、測定器とシリアル通信。フロントエンドはVue.jsなどできれいなWeb画面。まるで製造業の現場じゃないようなアプリを作ってみたいものです。
「ただ動けばいい」というアプリから、洗練されたデザインで、操作することに喜びを感じられるようなアプリ開発をしてみたいです。Web業界がすでにそうであるように。
さいごに
私はまだWebアプリをひとつも開発していない段階でこの内容を書いています。夢物語だと言われればまったく反論できません。
しかし、「プログラムなど無理!」と思っていた私がPythonを書くようになり、気づけば製造現場で毎日使われるアプリを作っています。これからはWebの力を借りて、より洗練された”使いたくなるアプリ”開発ができたらうれしいです。
働き方改革が進む中、人々が日常使うインターフェースにも、改革が起きていくんでしょうね。ビッグサイトで開催されるよな大きな展示会に出向いてみると、製品のデザインに注力している企業が増えてきていることがよくわかります。
昔のような、モータや駆動部がむき出しの設計では、ユーザーに訴求することが難しい時代になってきたんですね。
コメント